修改 $.ajax({ url: 'http://localhost:8080/adminlogin', method: 'POST', data: { name: $('#name').val(), pwd: $('#pwd').val() },,在请求头中明确指定 Content-Type 为 application/json 格式
时间: 2024-02-16 10:01:33 浏览: 147
可以通过设置 `contentType` 属性来指定请求头的 Content-Type 格式为 application/json,示例代码如下:
```
$.ajax({
url: 'http://localhost:8080/adminlogin',
method: 'POST',
data: JSON.stringify({
name: $('#name').val(),
pwd: $('#pwd').val()
}),
contentType: 'application/json',
success: function(response) {
console.log(response);
},
error: function(xhr) {
console.error(xhr);
}
});
```
这样发送的请求数据就是 JSON 格式,同时请求头中的 Content-Type 也被设置为 application/json 格式。注意,需要将请求数据对象转为 JSON 字符串,可以使用 `JSON.stringify()` 方法来实现。
相关问题
还有其他方法,都报错Access to XMLHttpRequest at 'http://localhost:8080/adminLogin' from origin 'http://localhost:8081' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. xhr.js:251 POST http://localhost:8080/adminLogin net::ERR_FAILED 500
这个错误提示属于跨域资源共享(CORS)问题。CORS 是一种机制,它使用额外的 HTTP 头来告诉浏览器,哪些源(网站)具有运行访问的权限。错误提示中显示,你的请求源来自 `http://localhost:8081`,但是服务器返回的响应头中没有包含 `Access-Control-Allow-Origin` 属性,导致浏览器拒绝了响应。
解决这个问题的方法有多种。其中一种方法是,在服务器端设置响应头,允许来自特定源的请求。你可以在服务器端的响应头中添加以下代码:
```
Access-Control-Allow-Origin: http://localhost:8081
```
这个代码表示允许来自 `http://localhost:8081` 的请求。如果你想允许来自所有源的请求,可以把这个值设置为 `*`。
如果你使用的是 Express 框架,可以使用 `cors` 中间件来简化设置。你可以通过以下代码安装 `cors` 中间件:
```
npm install cors --save
```
然后在服务器端代码中添加以下代码:
```javascript
const express = require('express')
const cors = require('cors')
const app = express()
app.use(cors({
origin: 'http://localhost:8081'
}))
// 其他代码
```
这样,就能够允许来自 `http://localhost:8081` 的请求了。
Access to XMLHttpRequest at 'http://localhost:8080/adminLogin' from origin 'http://localhost:8081' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. xhr.js:251 POST http://localhost:8080/adminLogin net::ERR_FAILED为啥我配值还报错
这个错误是由于浏览器的同源策略导致的,浏览器默认限制了跨域请求。在这个错误信息中,它告诉我们在请求的头信息中缺少了 `Access-Control-Allow-Origin` 字段,这个字段是用来控制跨域请求的,如果缺少这个字段,那么浏览器就会拦截这个请求。
为了解决这个问题,我们需要在服务器端添加跨域访问的配置,以支持来自其它域的请求。在 Spring Boot 中,我们可以通过添加 `@CrossOrigin` 注解或者配置 WebMvcConfigurer 来实现跨域访问。
下面是一个使用 `@CrossOrigin` 注解解决跨域请求的示例代码:
```java
@RestController
public class AdminController {
@CrossOrigin(origins = "http://localhost:8081")
@PostMapping("/adminLogin")
public String adminLogin() {
// 处理管理员登录请求
return "admin login success";
}
}
```
在上面的示例代码中,我们在 `AdminController` 的 `adminLogin()` 方法上添加了 `@CrossOrigin(origins = "http://localhost:8081")` 注解,表示允许来自 `http://localhost:8081` 域的请求访问该接口。
如果您希望允许来自所有域的请求访问该接口,您可以将 `@CrossOrigin(origins = "http://localhost:8081")` 修改为 `@CrossOrigin(origins = "*")`。
希望以上信息能够帮到您解决问题。
阅读全文