jquery ajax发布请求访问控制请求标头

时间:2017-11-08 15:25:51

标签: javascript jquery ajax

我正在尝试向我的服务器发出AJAX请求。我第一次在我的html文档中的<script>标记中引用了lib(在web中)。我使用以下方法做到了这一点:

$.ajax({
  url: api_url + "movie/create",
  type : "POST",
  contentType : 'application/json',
  data : JSON.stringify(form_data),
  success : function(response) {
    do something
  },
  error: function(xhr, resp, text){
      show error
  }
});

我收到了这个请求:

Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:ru,en;q=0.8
Connection:keep-alive
Host:*****
Referer:****
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 YaBrowser/17.10.0.2017 Yowser/2.5 Safari/537.36
X-Requested-With:XMLHttpRequest

比我开始重构我的应用程序,并从npm下载lib(&#34; npm i jquery&#34;)。因此,如果我以相同的方式请求(如上所示),我会收到此请求:

Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:ru,en;q=0.8
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:***
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 YaBrowser/17.10.0.2017 Yowser/2.5 Safari/537.36

服务器响应错误Content-Type is not allowed by Access-Control-Allow-Headers in preflight response

那么,我如何使用content-type标题而不是Access-Control-Request-Headers发布请求?

2 个答案:

答案 0 :(得分:0)

您的问题出在服务器端。安全浏览器仅接受来自同一域的请求。因此,您需要在后端允许所有原点请求,或者您可以创建具有特定原点的数组。

答案 1 :(得分:0)

尝试在“url: api_url + "movie/create",

下的ajax调用中进行此操作
  dataType: "JSONP",