Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将cURL转换为jqueryajax_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 将cURL转换为jqueryajax

Javascript 将cURL转换为jqueryajax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正试图使用jqueryajax,使用后端团队提供给我的curl来进行API调用 curl -X POST \ https://example1.com/api/sms \ -H 'Accept: application/json' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 's: APP' \ -d '{ "mobile": "1110002222" }'

我正试图使用jqueryajax,使用后端团队提供给我的curl来进行API调用

curl -X POST \
  https://example1.com/api/sms \
  -H 'Accept: application/json' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 's: APP' \
  -d '{ 
   "mobile": "1110002222"
 }'
但它抛出了一个403禁止的错误:

Invalid CORS request
这是托管在另一个域名(example2.com)上的代码:

data={mobile:'000111222'};
success=函数(数据){console.log(数据);};
headers={s:'APP'};
$.ajax({
键入:“POST”,
网址:'https://example1.com/api/sms',
数据:数据,
成功:成功,
数据类型:“json”,
标题:标题
});

我已经阅读了您的问题,请尝试以下代码:

var settings = {
  "async": true,
  "url": "https://example1.com/api/sms",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json",
    "s": "APP",
    "Cache-Control": "no-cache",
  },
  "processData": false,
  "data": "{\"mobile\": \"1110002222\"}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
对于这一请求:

curl -X POST \
  https://example1.com/api/sms \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 's: APP' \
  -d '{"mobile": "1110002222"}'

无效的CORS请求
-这就是您需要研究的。。。科尔斯。。。仅仅因为
curl
可以做一些事情,并不意味着浏览器可以。。。浏览器只能向允许跨源请求的服务器发出跨源请求。您是否尝试使用头={'Accept':'application/json','Cache Control':'no Cache','Content Type':'application/json','s':'APP'}来完成这些头?@Jean-claudeclette相同的错误,但谢谢。CORS的问题放在一边,这是一件值得指出的好事。我确实认为
JSON.stringify()
会更好,而且jQuery还为
$.ajax()
提供了一个特定的
contentType
选项
crossDomain
在这里也没用是的,我知道jQuery有content-type选项,但我想将cURL请求准确地映射到jQuery-AJAX。我同意你的观点,跨域选项是无用的,所以我删除了它。同样的错误。但是谢谢你。