我有一个在POSTMAN中运行的简单API调用:
真的很简单。效果很好。
但是,我试图在jQuery中复制它,如下所示:
$.ajax({
url: "https://example.us-east-1.amazonaws.com/prod",
type: "POST",
contentType: "application/json",
data: {
id_api: "catalogo_get_categorias"
},
success: function(results){
console.log(results)
},
error: function(err) {
console.log(err)
}
});
但它一直有500错误。
有什么想法吗?
编辑:
当我禁用Chrome CORS扩展程序时,控制台会产生以下错误
启用CORS plugin后,这就是输出
答案 0 :(得分:1)
邮递员不像您的浏览器(Chrome)那样绑定same-origin policy。如果您请求的API端点 - https://example.us-east-1.amazonaws.com/prod
- 没有回复Access-Control-Allow-Origin: *
CORS $.ajax()
,那么您将点击您发布的例外情况
要解决问题,您的选择基本上是:
还要确保xhrFields.withCredentials
请求使用相关的配置对象属性设置CORS header(s)。例如,您可能需要在传递给$.ajax()
的配置对象上设置$.ajax({
url: "https://example.us-east-1.amazonaws.com/prod",
type: "POST",
contentType: "application/json",
xhrFields: {
withCredentials: true
},
data: {
id_api: "catalogo_get_categorias"
},
success: function (results) {
console.log(results);
},
error: function (err) {
console.log(err);
}
});
属性:
<p></p>
答案 1 :(得分:0)
如果您正在使用node.js并表达此答案将有所帮助。
将以下行添加到server.js文件
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
&#13;
如果您遇到相同的错误,请通过THESE对类似问题的回答。