我正在使用jquery进行ajax调用以获取json格式的数据.调用成功回调函数但数据为空.
$(document).ready(function () {
$.ajax({
url: "http://apps.sungardhe.com/StudentResearch/public/Research.svc/Schools",
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: cbSchools
});
});
function cbSchools(data) {
if (data == null) {
alert("data is null");
return;
}
for (var school in data) {
$("#ddSchool").append("<option value='" + data[school].ShortName + "'>" + data[school].ShortName + "</option>");
}
}
使用fiddler我看到响应实际上是返回json数据,但由于某种原因,jquery结果对象为null.谁能告诉我为什么?
解决方法:
您被same-origin policy阻止,这会阻止跨域XMLHttpRequests.由于您需要设置标头以从这样的.Net Web服务中获取JSON,因此您处于困境,您无法通过浏览器发出此类请求,而不是来自其他域.
Fiddler可能正在显示内容,但浏览器不会让页面看到它,出于安全考虑,它总是为空.解决这个问题的方法是JSONP,但不幸的是,看起来并不是说服务是为了支持它而设置的.
标签:jquery,javascript,odata 来源: https://codeday.me/bug/20190610/1212989.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。