2012-07-27 85 views
0

將完整的URL路徑放入ajax中可以嗎?我在訪問網址時遇到了問題,並且我的狀態爲0,表示我的錯誤響應。ajax中的完整URL路徑

$.ajax({ 
     url: "http://fullurlpath.com/php/myphppagedata.php", 
     type: "GET", 
     data: "somedata="+somedata, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      alert(XMLHttpRequest.responseText); 
     } 
    }).error(function(xhr){ 
      alert(xhr.responseText); 
      alert(xhr.status); 
    }).done(function(data){ 
      alert(data); 
    }); 

而且,在我的http://fullurlpath.com/php/myphppagedata.php

header('Access-Control-Allow-Origin: *'); 
+0

域名是否相同? – 2012-07-28 00:03:11

+0

@Musa,我試過它的相對路徑,但我得到一個404錯誤,我假設它沒有得到的URL。這讓我感到困惑,因爲我在js文件夾中有這套代碼,並且'myphppagedata.php'在php文件夾中。所以我只是''/ php/myphppagedata.php' – hellomello 2012-07-28 00:06:32

+0

@ExplosionPills我通過不同的域訪問它,這就是爲什麼我想使用完整路徑。但我只是越來越狀態0 – hellomello 2012-07-28 00:06:59

回答

1
+0

它適用於我訪問的另一個文件。 – hellomello 2012-07-28 00:40:28

+0

@andrewliu當你在瀏覽器中瀏覽http:// fullurlpath.com/php/myphppagedata.php時會發生什麼?無論您使用ajax還是任何其他客戶端(例如Web瀏覽器),目標URL都應該正常工作。 – 2012-07-28 00:42:01

+0

你知道解決方法嗎? – hellomello 2012-07-28 00:46:19

0

而是與請求它的你的客戶端使用jQuery的瀏覽器,我會在你自己的域上創建一個頁面,比如叫做request.php搭配:

echo file_get_contents("http://fullurlpath.com/php/myphppagedata.php"); 

這樣,你的服務器將請求的資源,讓你不會有相同的起源政策問題。然後改爲使用這個文件。

$.ajax({ 
    url: "request.php", 
... 

您還可以使用cURL而不是file_get_contents()用於更復雜的功能。

+0

我仍然需要「http://fullurlpath.com/request.php」,因爲這個Ajax被調用在不同的域中。沒有? – hellomello 2012-07-28 01:16:45

+0

不是。這就是整個問題。 'request.php'應該與調用ajax的文件位於同一個域。 – darksky 2012-07-28 01:18:57