2011-10-06 64 views
-1

我有這個簡單的2個文件應該處理簡單的JSONP調用JSONP簡單的電話不能正常工作

這裏是索引文件:

<html> 
<head> 
    <script type="text/javascript" id="myJSONPCall" src="http://mySubDomain.comoj.com/jsoncall.php?jsonCallback=myCallback"></script> 
    <script type="text/javascript"> 
     function myCallback(obj) { 
      alert(obj.text); 
     } 
    </script> 
</head> 

<body> 
</body> 
</html> 

,這裏是PHP的一部分:

<?php 
$myObject = array(
    "text" => "Hello, I am data from the remote server.", 
    "created_at" => "Thu May 07 21:36:12 +0000 2009" 
); 

$myJSONObject = json_encode($myObject); 

$myJSONCallback = filter_var($_REQUEST['jsonCallback'], FILTER_SANITIZE_STRING); 

print "$myJSONCallback($myJSONObject)" 
?> 

在這裏,我更新它。這裏有什麼問題?我究竟做錯了什麼?

+0

Downvoting你不喜歡的所有答案是不合適的。 – duskwuff

回答

-1

我不確定你瞭解JSONP。您在此處的代碼沒有意義:

  • 您提供的回調是「3」,而不是全局JavaScript函數的名稱。
  • PHP端不會生成對JSON回調的調用。
+0

你能告訴我一個如何做回電話的例子嗎? –

-1

那麼,你認爲你的GET號碼打印在哪裏? 當您的瀏覽器請求http://mysubdomain.comoj.com/jsoncall.php?jsonCallback=3網址時,它會向php頁面發出HTTP請求。當http服務器向你發送響應時,它只包含「3」作爲正文,這是無效的javascript,並且什麼也沒有發生。

此外,如果您要創建一個構建動態JavaScript的PHP頁面,則必須先通過使用header("Content-Type: textt/javascript");指令向瀏覽器發送JavaScript文件,然後再將任何內容打印到屏幕上。

最後但並非最不重要......你根本沒有在做一個jSONP調用:)