javascript – jquery ajax成功结果为null

我正在使用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,但不幸的是,看起来并不是说服务是为了支持它而设置的.

上一篇:PHP curl与Microsoft Dynamics CRM 2011交谈


下一篇:c# – 处理DataServiceContext?