在Jquery中使用原始数据复制简单的Postman API调用
我有一个简单的API调用,它在POSTMAN中工作: 非常简单。工作完美 但是,我尝试在jQuery中复制这一点,如下所示:在Jquery中使用原始数据复制简单的Postman API调用,jquery,api,postman,Jquery,Api,Postman,我有一个简单的API调用,它在POSTMAN中工作: 非常简单。工作完美 但是,我尝试在jQuery中复制这一点,如下所示: $.ajax({ url: "https://example.us-east-1.amazonaws.com/prod", type: "POST", contentType: "application/json", data: { id_api: "catalogo_get_categorias" },
$.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扩展时,控制台产生以下错误
启用后,这就是输出
邮递员与浏览器(Chrome)的绑定方式不同。如果您正在请求的API端点-
https://example.us-east-1.amazonaws.com/prod
-不使用类似的访问控制允许来源:
,您将遇到您发布的异常
要解决此问题,您的选择基本上是:
$.ajax()
请求通过使用相关的配置对象属性来设置。例如,您可能需要在传递给$.ajax()
的配置对象上设置xhrFields.withCredentials
属性:
如果您使用的是node.js和express,这个答案会有所帮助 将以下行添加到server.js文件中
app.use(函数(请求、恢复、下一步){
res.header(“访问控制允许原点”、“*”);
res.header(“访问控制允许头”、“来源、X请求、内容类型、接受”);
next();
});
您可以检查错误消息/堆栈跟踪吗?我已经添加了控制台的屏幕截图,所以“Postman使用服务器发出请求”“还要确保$.ajax()请求包含适当的标题”“谢谢,@Phil-我已经用您的反馈更新了我的答案。为什么使用凭据”
?OP没有提到任何基于cookie的身份验证。此外,与OP代码的问题一样,您没有将数据序列化为JSON。所有这些都包含在我在问题注释中标记的两个副本中OP是否表明他们在服务器端使用Express?我在使用node.js时遇到了类似的错误,因此我认为这里的错误也一样。我将编辑答案。错误是一般性的(它被定位到HTTP层),并且完全独立于所使用的特定技术。如果我想深入了解错误,您建议使用什么关键字搜索?。我刚开始探索服务器端编程。最好是搜索错误消息本身。从这里开始~。MDN文档也是一个很好的资源~
$.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);
}
});