How to get data with JavaScript from another server?

前端 未结 8 608
生来不讨喜
生来不讨喜 2020-12-02 17:23

How can I make requests to other server(s) (i.e. get a page from any desired server) with a JavaScript within the user\'s browser? There are limitations in place to prevent

8条回答
  •  一整个雨季
    2020-12-02 18:01

    update 2018:

    You can only access cross domain with the following 4 condition

    • in response header has Access-Control-Allow-Origin: *

    Demo

    $.ajax({
      url: 'https://api.myjson.com/bins/bq6eu',
      success: function(response){
        console.log(response.string);
      },
      error: function(response){
        console.log('server error');
      }
    })

    • use server as bridge or proxy to the target

    Demo:

    $.ajax({
      url: 'https://cors-anywhere.herokuapp.com/http://whatismyip.akamai.com/',
      success: function(response){
        console.log('server IP: ' + response);
      },
      error: function(response){
        console.log('bridge server error');
      }
    })

    • using browser addon to enable Allow-Control-Allow-Origin: *
    • disable browser web security

    Chrome

    chrome.exe --args --disable-web-security
    

    Firefox

    about:config -> security.fileuri.strict_origin_policy -> false
    

    end


    noob old answer 2011

    $.get(); can get data from jsbin.com but i don't know why it can't get data from another site like google.com

    $.get('http://jsbin.com/ufotu5', {},
      function(results){  alert(results); 
    });
    

    demo: http://jsfiddle.net/Xj234/ tested with firefox, chrome and safari.

提交回复
热议问题