2014-05-08 74 views
0

我必須從服務器A上的javascript請求到服務器B上的php文件。我可以訪問這兩個服務器。跨域從Javascript到PHP

但有些事情出錯了。我總是準備狀態0,狀態0.

這是我嘗試的最新事情:請指出我做錯了什麼。謝謝。

服務器A:

$.ajax({ 
    type: "GET", 
    url: 'http://server_B/request.php', 
    data: form_data, 
    dataType: 'json', 
    success: function (resp) { 
     alert("Successful"); 
     console.log("Response completed"); 
     console.log("resp is" + resp); 
    }, 
    error: function (xhr, error) { 
     console.log("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); 
     console.log("responseText: " + xhr.responseText); 
     alert("Error occurred."); 
    } 
}); 

服務器B:request.php

<?php 
    header('Content-Type: application/json'); 
    header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); 
    header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); 
    header('Access-Control-Max-Age: 1000'); 
    header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); 

    # do the work and save it on $result array. 
    print json_encode($result,true); 
?> 
+0

嘗試使用'jsonp' –

+0

我不熟悉jsnop,我沒有得到在控制檯上的任何結果,因此,瞭解哪些是你的Ajax調用發生.. –

+0

,使用'數據類型:「jsonp'' - 瞭解[JSONP](http://en.wikipedia.org/wiki/JSONP) –

回答

-1

要使用兩個不同的域之間的AJAX,你將不得不使用jsonp

你可以找到更多的幫助here

+1

這將更適合作爲評論。但是,對於他自己的每個' –

+1

「_you將不得不使用jsonp」_ - 否,您也可以使用COR,這是OP正在嘗試執行的操作。 –