AJAX失败,但当我直接访问URL时调用成功
我从FireBug发出以下AJAX调用:
var rootUrl = 'http://172.24.105.22:8080/geoserver/Chennai_Sub/ows';
var defaultParameters = {
service: 'WFS',
version: '1.0.0',
request: 'GetFeature',
typeName: 'Chennai_Sub:Link',
maxFeatures: 200,
outputFormat: 'application/json',
format_options: 'callback: getJson'
};
$.ajax({
url: rootUrl,
data: defaultParameters,
success: function () {
console.log("victory");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log(textStatus);
}
});
AJAX调用失败。这是我得到的响应对象的一部分:
readyState 4
status 404
statusText "error"
但是,当我实际尝试在浏览器中打开URL(http://172.24.105.22:8080/geoserver/Chennai_Sub/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=Chennai_Sub%3ALink&maxFeatures=200&outputFormat=application%2Fjson&format_options=callback%3A+getJson
)时,我得到一个干净的JSON响应。你知道我做错了什么吗?
(另外,我在以下URL中尝试了FireBug会话:http://172.24.105.22:3000/layer
。因此,我认为这不是CORS问题。)
解决方案
这可能不是正确的解决方案,但我相信不同的端口可能会导致此类问题。
来自上面的评论
仅允许在相同的域、协议和 由于同源策略而导致的端口。
维基百科对此有何评论: http://en.wikipedia.org/wiki/Same-origin_policy
相关文章