否';访问控制允许原点';在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请看我的问题。等待响应值时出错。键值不正确,您无法以这种方式看到结果。