jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – $.getJSON请求中没有’Access-Control-Allow-Origin’标头大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试向以下URL发出一个简单的$.get JSON请求:
http://dev.markitondemand.com/Api/v2/InteractiveChart/json?parameters=%7B%22Normalized%22%3Afalse%2C%22NumberOfDays%22%3A7%2C%22DataPeriod%22%3A%22Day%22%2C%22Elements%22%3A%5B%7B%22Symbol%22%3A%22NUS%22%2C%22Type%22%3A%22price%22%2C%22Params%22%3A%5B%22c%22%5D%7D%5D%7D

我的代码很简单:

var ticker = "CRR";
 var url = "http://dev.markitondemand.com/Api/v2/InteractiveChart/json?parameters=%7B%22Normalized%22%3Afalse%2C%22numberOfDays%22%3A7%2C%22DataPeriod%22%3A%22Day%22%2C%22Elements%22%3A%5B%7B%22Symbol%22%3A%22" + ticker + "%22%2C%22Type%22%3A%22price%22%2C%22Params%22%3A%5B%22c%22%5D%7D%5D%7D";

 $.getJSON(url,function(data) {
     console.log(data);
 }).success(function() {
     $('#show-data').html("successfully retrieved data.");
 }).error(function() {
     $('#show-data').html("service Unavailable.");
 });

它没有运行任何错误或成功函数,而当我尝试使用$.ajax时,我得到同样的东西.就我的设置而言,我正在尝试@L_227_0@mEN项目,所以我的localhost上有Mongo,Express和Node.js.任何帮助,将不胜感激.

@H_403_25@解决方法
您显然正在尝试跨源Ajax请求.这意味着您正在尝试联系与原始网页所在的域/端口不同的域/端口上的服务器.这称为交叉原始请求,认情况下不允许.您可以阅读有关浏览器的相同原始安全策略 here.

为了允许直接发出跨源请求,您发出请求的服务器必须特别允许它.

Access-Control-Allow-Origin标头是允许这种类型访问的一种方式,但它显然不应用该标头,因此浏览器拒绝该请求.您可以阅读CORS(跨源资源共享)如何工作here.

制作跨源请求的其他方法是使用JSONP(还需要目标服务器的协作以支持JSONP请求)或通过代理(允许您联系的另一台服务器,可以为您提供所需服务器的请求并返你的结果).代理在您有权访问的服务器上需要您自己的服务器代码,但不需要目标服务器的协作.

根据the doc on this page,似乎Markit On Demand确实支持JSONP,因此您可以将该表单用于跨源请求.如果为$.ajax()设置适当的dataType:“jsonp”选项,jQuery的ajax支持该格式.

大佬总结

以上是大佬教程为你收集整理的jquery – $.getJSON请求中没有’Access-Control-Allow-Origin’标头全部内容,希望文章能够帮你解决jquery – $.getJSON请求中没有’Access-Control-Allow-Origin’标头所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。