AJAX失败,但当我直接访问URL时调用成功

本教程将介绍AJAX失败,但当我直接访问URL时调用成功的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

AJAX失败,但当我直接访问URL时调用成功 教程 第1张

问题描述

我从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

好了关于AJAX失败,但当我直接访问URL时调用成功的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。