如何使用dojo xhr调用rest服务?

时间:2013-08-05 09:07:58

标签: dojo

try{
    var targetURL ="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1/query?where=STATE_NAME%3D%27Florida%27&f=json";
    var xhrArgs = {
    url: targetURL,                 
    handleAs: "json",
    load: function(data) {
        alert(data);
    },
    error: function(error) {
        alert("An unexpected error occurred: " + error);
    }
    };
    var deferred = dojo.xhrGet(xhrArgs);
}catch(e){
    alert(e);
}

这是调用休息服务的正确方法吗? 我从上面的代码得到了null响应。

1 个答案:

答案 0 :(得分:2)

dojo/xhr不能用于跨域请求。

http://sampleserver1.arcgisonline.com/是否与加载网页或其他服务器的域相同?

如果是同一台服务器,请删除域名(即ArcGIS/rest/services/...);

如果没有,您可以使用jsonp

https://dojotoolkit.org/reference-guide/1.9/dojo/request/script.html#dojo-request-script

另一种方法是调用位于充当代理的Web服务器上的服务,并调用另一台服务器。