开发者

JQuery.ajax success function returns empty

I have a very basic AJAX function in JQuery:

$.ajax({
    url: "http://www.google.com",
    dataType: "html",
    success: function(data) {
        alert(data);
    }
});

But the data is always an empty string, no matter what url I go to... Why is that? I am running this locally at http://localhost:3000, and am using JQuery 1.4.2.

If I make a local response, however, like this:

$.ajax({
    url: "http://localhost:3000/test",
    dataType: "html",
    success: function(d开发者_如何学JAVAata) {
        alert(data);
    }
});

...it returns the html page at that address. What am I missing here?


You're running into the same-origin policy, preventing you from making an ajax request to another domain, for security reasons.

You can't make a request to:

  • Another domain
  • Another port, even on the same domain
  • A sibling domain

You can make a request to:

  • The same domain
  • A subdomain of the current domain

You can read more about it here


You can't load data from other domains. It's a security feature.

Here's a link that talks about how to create a proxy from your web server to get around his limitation.

http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜