2013-07-17 65 views
0

我嘗試通過Ajax發送一個json數組到一個遠程PHP服務器,但我只得到一個「ParserError」。 謝謝從PhoneGap發送JSON到遠程PHP服務器

阿賈克斯

$.ajax({ 
    dataType : 'jsonp', 
    jsonp : 'jsonp_callback', 
    data : { 
     button : "test" 
    }, 
    url : 'http://www.my-server.de/file.php', 
    success : function(sqlArray) { 
     alert(sqlArray); 
    }, 

    error : function(jqXHR,textStatus,errorThrown) { 
     alert(jqXHR); 
     alert(textStatus); 
     alert(errorThrown); 
    } 
}); 

PHP

<?php 
echo "Button ist"; 
echo $_GET['button']; 
?> 

更新:

謝謝你,但我只想寫出來的JSON對象的值。 現在發送工作,但PHP網站鴕鳥政策寫入值。

function postJSON(){ 
$.ajax({ 
    type: "GET", 
    url: "http://www.my-server.de/file.php", 
    data: { 'dataString': "juhu" }, 
    cache: false, 
    success: function() 
     { 
      alert("Order Submitted"); 
     }, 
     error: function() 
     { 
      alert("Error"); 
     } 
    }); 

PHP:

<?php 
echo "Value is:"; 
echo $_GET['dataString']; ?> 
+0

您正在等待JSON數據,你的PHP腳本不返回任何東西。嘗試呼應至少這樣的:'回波json_encode(陣列());',看它是否仍引發錯誤。 – Brewal

回答

0

只是json_encode()不會做的工作。由於您使用JSONP,你需要返回一個回調函數數據類型 - 這是我用:

public static function renderJsonp($object) { 
     header('Content-Type: text/javascript; charset=utf8'); 
     header('Access-Control-Allow-Origin: *'); 
     header('Access-Control-Max-Age: 3628800'); 
     header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); 

     header('Content-type: application/json; charset=utf-8'); 

     $callback = "callback"; 
     if(isset($_GET['callback'])) $callback = trim($_GET['callback']); 

     echo $callback . '(' . json_encode($object) . ')'; 
    } 

使用stdClass的()來創建對象。

+0

我已經更新了我的問題 – user2289728

相關問題