Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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上的ajax中,请求的资源上存在标头_Javascript_Php_Ajax_Sorting_File Get Contents - Fatal编程技术网

否';访问控制允许原点';在JavaScript上的ajax中,请求的资源上存在标头

否';访问控制允许原点';在JavaScript上的ajax中,请求的资源上存在标头,javascript,php,ajax,sorting,file-get-contents,Javascript,Php,Ajax,Sorting,File Get Contents,我目前正在从事一个spring项目,我正在使用页面控制器指定uri。 我们现在需要使用urishortapi。有一个问题。我们这样做的方式是PHP。但是我必须使用JavaScript中的代码 我试过这个密码 data={}; data.key=“ehelkhej45jjb38h6f5234hg”; data.short=“www.google.com”; data.name=“googleuri” $.ajax({ url:“https://cutt.ly/api/api.php", 类型:“P

我目前正在从事一个
spring项目
,我正在使用页面控制器指定
uri
。 我们现在需要使用
urishortapi
。有一个问题。我们这样做的方式是
PHP
。但是我必须使用
JavaScript
中的代码

我试过这个密码

data={};
data.key=“ehelkhej45jjb38h6f5234hg”;
data.short=“www.google.com”;
data.name=“googleuri”
$.ajax({
url:“https://cutt.ly/api/api.php",
类型:“POST”,
数据类型:“json”,
发送前:函数(xhr){
setRequestHeader(“访问控制允许来源”,“*”);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
},
数据:数据,
成功:功能(结果){
控制台日志(结果);
}
});
这给我造成了一个错误

从源代码访问“”处的XMLHttpRequest “”已被CORS策略阻止:响应 飞行前请求未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。jquery-1.9.1.js:8526 POST net::ERR_失败

我可以试试邮递员

当我第一次调用它时,
正文
是空的,并且
状态:500内部服务器错误
。但是当我再次打电话时,我得到了一个像图片一样的
响应

我可以尝试
GET
jsonp
,但它被阻止了

$.ajax({
url:“https://cutt.ly/api/api.php",
键入:“获取”,
数据类型:“jsonp”,
数据:数据,
成功:功能(结果){
控制台日志(结果);
}
});
块错误

jquery-1.9.1.js:8336跨源读阻塞(CORB)阻塞 跨源响应 使用MIME类型text/html。看见 更多 细节

我试过的。它成功了。但这是错误的

得到 500(内部服务器错误)

var选项=”https://cutt.ly/api/api.php?key=ehelkhej45jjb38h6f5234234hg&short=www.google.com&name=googleuri"
$.ajaxPrefilter(函数(选项){
if(options.crossDomain&&jQuery.support.cors){
var http=(window.location.protocol=='http:'?'http:':'https:');
options.url=http+'//cors anywhere.herokuapp.com/'+options.url;
}
});
美元(
选项,
功能(响应){
console.log(“>”,响应);
});

是具有API用法的链接。您如何解决这个问题?

您在帖子中遇到CORS错误,可能是因为该API不支持帖子。当您尝试在jQuery中使用GET时,会出现CORB错误,因为该API使用内容类型
text/html
响应您的GET,而它应该(可能)使用类型
application/json
响应。作为安全措施,您的浏览器将阻止跨源请求的
text/html
。看起来该API实际上只用于服务器端。@Phil我通过引用您链接的答案解决了错误,但没有返回值。为什么?@BenChamberlin我删掉了这个问题。有一段代码我已经纠正了错误,但它没有给我任何响应值。原因是什么?当我运行更新的示例时,我得到了
{“url”:{“status”:4}
。看起来代理有时运行得很慢(我花了8秒的时间)。如果代理完成后您看到的就是这种情况,那么api密钥无效。@BenChamberlin请看我的问题。等待响应值时出错。键值不正确,您无法以这种方式看到结果。