在Jquery中使用原始数据复制简单Postman API调用

时间:2018-06-17 20:13:45

标签: jquery api postman

我有一个在POSTMAN中运行的简单API调用:

enter image description here enter image description here

真的很简单。效果很好。

但是,我试图在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扩展程序时,控制台会产生以下错误

enter image description here

启用CORS plugin后,这就是输出 enter image description here

2 个答案:

答案 0 :(得分:1)

邮递员不像您的浏览器(Chrome)那样绑定same-origin policy。如果您请求的API端点 - https://example.us-east-1.amazonaws.com/prod - 没有回复Access-Control-Allow-Origin: * CORS $.ajax(),那么您将点击您发布的例外情况

要解决问题,您的选择基本上是:

  1. 如果AWS允许,请将header添加到响应中。
  2. 通过代理服务器路由请求,以便服务器向AWS发出实际请求,并且不受同源策略的约束。
  3. 还要确保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文件

&#13;
&#13;
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;
&#13;
&#13;

如果您遇到相同的错误,请通过THESE对类似问题的回答。