有没有人知道如何使用JavaScript或jQuery添加或创建自定义HTTP标头?
我正在使用下面的代码,但它给了我 405方法不允许。 我正在使用 POST 方法,但在请求方法中,但它在请求方法中显示 OPTION 。 状态代码:405方法不允许,当我使用邮递员时它正在工作并向我显示200 ok状态代码。有没有人帮助我发生了什么问题。 我在HTML中使用下面的代码。
$(document).ready(function () {
$.ajax( {
url: 'http://api.XXXXXXXXXX.com/SharedServices/SharedData.svc/rest/Authenticate',
data: {
"ClientId": "ApiIntegration",
"UserName": "XXXXX",
"Password": "XXXXX@123",
"EndUserIp": "192.168.1.10"
},
method: 'POST',
dataType: 'json',
headers: {
"contentType": "application/json",
"cache-control": "no-cache"},
success: function (response) {
console.log(response);
},
});
})
如果我的代码中存在问题,什么是正确的jQuery代码。 这是我正在使用的邮差女巫的截图。
答案 0 :(得分:2)
当您提出跨源请求时,服务器必须提供access control headers (CORS)以授予您读取响应的JavaScript权限。
典型的请求被视为简单,但如果您向其添加某些特征,那么它就会变得简单并变为preflighted request。
其中一个特征是"它在请求中设置自定义标题",因此通过添加自定义标题,您已使其变得复杂。
在浏览器发出POST请求之前,它会发送预检请求,这是一个OPTIONS请求。
它必须收到来自服务器的响应,在发出POST请求之前允许它发出POST请求。
当浏览器向服务器发出OPTIONS请求时,它当前返回错误,说明"您不能向该URL发出OPTIONS请求!"。
您需要更改服务器:
答案 1 :(得分:0)
jQuery代码中没有问题,这是因为您提出了跨域请求。尝试以这种方式使用https://www.youtube.com/watch?v=EPSjxg4Rzs8