Cross-domain JSON request?

后端 未结 2 1343
臣服心动
臣服心动 2020-12-09 18:26

Question:

I\'m trying to use JSON accross domains, but all i find is JSON parsers, which I don\'t need...
I\'ve read that it\'s possible to do cross-domain requ

相关标签:
2条回答
  • 2020-12-09 19:00

    JSON is just a serialization method. There is no relation whatsoever between the method of the serialization and the question of whether or not the browser will try to stop you from accessing data across domains. (This explains why you are only finding parsers - there is nothing to JSON, except encoding and decoding it).

    XMLHTTPRequest is just named XML HTTPRequest. It doesn't really have anything to do with XML. It can be used to send text data, data encoded in JSON, or any others serialization method.

    There are several methods to access data cross domain. one described in David Hedlund's answer. Others can be found in answers to similar questions (see here and here).

    0 讨论(0)
  • 2020-12-09 19:01

    What you can do cross-domain is inject a script include:

    var s = document.createElement('script');
    s.src = 'http://someotherdomain/getMeMyJs.aspx?parameter=value';
    s.onload = someOptionalCallback;
    s.type = 'text/javascript';
    
    if(document.getElementsByTagName('head').length > 0)
        document.getElementsByTagName('head')[0].appendChild(s);
    

    Now, the code returned by that request will be executed immediately. If you want for that to interact with your code, you can make sure that it's being returned with all data wrapped in a function call:

    jsonCallback({ object: json, whatever: value });
    

    You can use that to build APIs, where you pass the name of a callback function as a request querystring parameter. Here's an example of such an API

    0 讨论(0)
提交回复
热议问题