Javascript Cross domain JSON -


hi trying use javascript , html read json object url. using following code:

function getjsonp(url, success) {      var ud = '_' + +new date,         script = document.createelement('script'),         head = document.getelementsbytagname('head')[0]             || document.documentelement;      window[ud] = function(data) {         head.removechild(script);         success && success(data);     };      script.src = url.replace('callback=?', 'callback=' + ud);     head.appendchild(script); }  getjsonp('http://weburl?&callback=?', function(data){     console.log(data); }); 

as have guessed getting not @ same origin document, , parent of track element not have 'crossorigin' attribute. origin 'null' therefore not allowed access.

fyi server returns json data , doesnot have callback function.

cheers help.

the server either needs have cors enabled using headers this: (credits answer here: cors php headers)

// allow origin if (isset($_server['http_origin'])) {     header("access-control-allow-origin: {$_server['http_origin']}");     header('access-control-allow-credentials: true');     header('access-control-max-age: 86400');    // cache 1 day }  // access-control headers received during options requests if ($_server['request_method'] == 'options') {      if (isset($_server['http_access_control_request_method']))         header("access-control-allow-methods: get, post, options");               if (isset($_server['http_access_control_request_headers']))         header("access-control-allow-headers: {$_server['http_access_control_request_headers']}");      exit(0); } 

or server needs output jsonp like:

echo $_get['callback'] . '(' . json_encode($whatever) . ')'; 

another option if not on own server create php file on own server filegetcontents on url need read (with json data without cors) , echo same data in jsonp format. can use new php file (url) in pure javascript getjson function.

without server in middle or cors or jsonp, not possible.


Comments