2012-07-21 33 views
0

我拍下面的POST請求遠程Apache服務器,託管小PHP腳本:

的POST:

var request = $.ajax({ 
    type: 'POST', 
    url: 'http://my.server.on.port/mmm.php', 
    data: { abc: "abcdefghijklmnopqrstuvwxyz" } }) 
    .done(function(data) { alert("success :"+data.slice(0, 100)); }); 

request.fail(function(jqXHR, textStatus) { 
    alert("Request failed: " + request.reponseText + " " + request.status +" " + request.statusText +" " +request.responseText ); 
}); 

mmm.php腳本:

<?php echo json_encode(array("first"=>"XXXXX","last"=>"YYYYY")); ?> 

httpd.conf文件:

ServerName my.server.on.port 
DocumentRoot "/var/www/html" 

<Directory "/var/www/html"> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

NameVirtualHost "my.server.on.port" 
Listen 80 

<VirtualHost *:80> 
    DocumentRoot "/var/www/html/QR/tst" 
    ServerName "my.server.on.port:80" 

    <Directory "/var/www/html/QR/tst"> 
      Options Indexes MultiViews FollowSymLinks 
      AllowOverride All 
      Order allow,deny 
      Allow from all 
    </Directory> 

    <Directory "/var/www/html/QR/tst/css/smoothness"> 
      Options Indexes MultiViews FollowSymLinks 
      AllowOverride All 
      Order allow,deny 
      Allow from all 
    </Directory> 
    <Directory "/var/www/html/QR/tst/development-bundle"> 
      Options Indexes MultiViews FollowSymLinks 
      AllowOverride All 
      Order allow,deny 
      Allow from all 
    </Directory> 
    <Directory "/var/www/html/QR/tst/development-bundle/ui"> 
      Options Indexes MultiViews FollowSymLinks 
      AllowOverride All 
      Order allow,deny 
      Allow from all 
    </Directory> 
    <Directory "/var/www/html/QR/tst/development-bundle/demos"> 
      Options Indexes MultiViews FollowSymLinks 
      AllowOverride All 
      Order allow,deny 
      Allow from all 
    </Directory> 

</VirtualHost> 

來自服務器的回覆是304.所有文件都有755 p ermission。沒有idia如何解決這個問題。感謝名單!

HTTP/1.1 304 Not Modified 
Date: Sat, 21 Jul 2012 08:45:38 GMT 
Server: Apache/2.2.22 (Fedora) 
Connection: close 
ETag: "c0744-f7a-4c553071e0d4e" 

這是錯誤的警報: alert

+1

解決什麼問題? 304有什麼問題? – zerkms 2012-07-21 09:04:05

+0

我無法得到來自PHP的迴應(這很簡單,應該返回first = xxx&last = yyyy ..爲什麼我不能得到200?有什麼錯誤的配置?\ – Li3ro 2012-07-21 09:15:13

+1

304意思是「它沒有修改」你發送相同的結果 – Gntem 2012-07-21 09:23:14

回答

0

這對我的作品(在Chrome和IE測試):

var request = $.ajax({ 
    type: "post", 
    url: "mmm.php", 
    data:"abcdefghijklmnopqrstuvwxyz", 
    success:function(data){ alert("success: " +JSON.stringify(data)); }, 
    error:function(data){ alert("error "+JSON.stringify(data)); }, 
    statusCode:{ 
      200:function(){alert("200 OK");}, 
      304:function(){alert("304 Not Modified");}, 
      404:function(){alert("404 No Found");}}, 
    isModified:function(){alert("Something was modified");} 
}); 

感謝任何幫助過的人!

1

試試這個Ajax請求

var request = $.ajax({ 
type:"post", 
url:"http://my.server.on.port/mmm.php", 
data:"abc=abcd", 
//success:function(data){ console.log("success "+data); }, 
//error:function(data){console.error("error "+data;}, 
statusCode:{ 
200:function(){console.log("got 200")}, 
304:function(){console.log("got 304")}, 
404:function(){console.error("got 404")}}, 
isModified:function(){console.log("Something was modified");} 
}).responseText; 
// i haven't used .done .fail but i believe the code below would work. 
request.done(function(data){ console.log("got response "+data); }); 
request.fail(function(jqXHR,textStatus){ 
console.log("Request Failed\n"+"object dump :"+console.log(jqXHR)+"\n"+"textStatus :"+textStatus); 
}); // changed according to the example from jquery site. 
+0

棄用聲明:jqXHR.success(),jqXHR.error()和jqXHR.complete()回調將在jQuery 1.8中被棄用,爲了準備好你的代碼的最終刪除,使用jqXHR.done(),jqXHR.fail()和jqXHR.always()來代替,所有這些來自http:// api.jquery.com/jQuery.ajax/,我使用的jquery 1.8所以這適用於我。 – Li3ro 2012-07-21 10:02:17

+1

redited沒有使用1.8很多,但我認爲這個請求會工作。 – Gntem 2012-07-21 10:13:07

+0

它確實工作,但我不能解析我得到的錯誤!它的[Object Object ] ..任何idia? – Li3ro 2012-07-21 10:49:43