$ .ajax vs $ .post:获取允许来源错误

时间:2016-03-21 23:00:49

标签: javascript jquery ajax

使用此方法执行ajax很好:

$.post("http://localhost:3000/scrape",
            {
                data: json
            },
            function(data, status){
            });

但这不是?

$.ajax({
              type: 'POST',
              url: 'http://localhost:3000/scrape',
              data: json,
              contentType: "application/json",
              success: function(data,status){

              },
              async:false
            });

使用$ .ajax我得到了错误 XMLHttpRequest无法加载http://localhost:3000/scrape。对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。

我认为他们俩都一样吗?这里的问题是什么?

1 个答案:

答案 0 :(得分:4)

在第一个示例中,您正在使用application/x-www-form-urlencoded数据发出简单请求。

在第二个示例中,您指定的内容类型不是简单请求所允许的内容类型之一,因此您触发preflighted request

服务器正在愉快地响应POST请求,但没有响应预检OPTIONS请求。