2011-08-26 11 views
16
$.ajax({ 
    type : "GET", 
    dataType : "jsonp", 
    url : '/', 
    data : {} 
    success: function(obj){ 

    } 
}); 

$ .ajax dataType:jsonpのクロスドメインを使用してデータを送信するにはどうすればよいですか?

+1

遭遇しているエラーの種類は明記されていないので、私はあなたにこれを指摘することができます:http://api.jquery.com/jQuery.getJSON/あなたが望むことをするべきですが、もう一度やり直してくださいあなたが書いたことの略記。 – m90

+0

投稿データ??あなたはclairfyできますか? – Baz1nga

+0

docsを参照してください:http://api.jquery.com/jQuery.getJSON/あなたのURLにコールバック関数を指定する必要があります。 –

答えて

3

単純なjsonpでは不可能です。 JS

$.ajax({ 
    type : "GET", 
    dataType : "jsonp", 
    url : "http://domainname.com/json.php?callback=?", // ?callback=? 
    success: function(data){ 
      // do stuff with data 
    } 
}); 

PHPはおそらく次のようになります。代わりに、上記のような別のリンクにあなたを送信するのでは、あなたの質問に答えるためにthis

+0

は〜私はあなたに感謝しなければなりませんそのドキュメントが必要です。 – Thinking80s

+0

@kevinがリンク – genesis

+2

で編集した方法がわかりにくいですか?それは解決策を提供しない、ちょうどあなたがそれを行うことはできないと言います。 – dewd

38

を読む

<?php 
include('connect.php'); 
$sql = "SELECT id, name, items FROM tablename ORDER BY id ASC"; 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
{ 
    $rows[] = array(
      "id" => $row['id'], 
      "name" => $row['name'], 
      "items" => $row['items']); 
} 
$json = json_encode($rows); 
$callback = $_GET['callback']; 
echo $callback.'('. $json . ')'; 
?> 

dataTypejsonpに設定すると、urlの最後に?callback=?が自動的に追加され、コールバックが指定されます。上記のように自分自身を指定すると、あなたは渡す名前のcallbackを使用します。 jsonコールバック名を指定する必要がある場合は、jsonpCallbackプロパティを使用します。または、データプロパティにパラメータとして追加することもできます。詳細が必要な場合は、jQuery API Ajax:http://api.jquery.com/jQuery.ajax/をご覧ください。

結果文字列に;を追加することを忘れないでください。

こちらがお役に立てば幸いです。

+3

ありがとう! 1ダースの例を見てみると、これはついに私のコードが動作するようになった! – sahithya

関連する問題