$.ajax({
type : "GET",
dataType : "jsonp",
url : '/',
data : {}
success: function(obj){
}
});
$ .ajax dataType:jsonp cross-domainを使用してデータを投稿するにはどうすればよいですか?
単純なjsonpでは不可能です。読み取りthis
上記のような別のリンクにあなたを送る代わりにあなたの質問に答えるには:
[〜#〜] js [〜#〜]:
$.ajax({
type : "GET",
dataType : "jsonp",
url : "http://domainname.com/json.php?callback=?", // ?callback=?
success: function(data){
// do stuff with data
}
});
[〜#〜] php [〜#〜]はおそらく次のようになります:
<?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 . ')';
?>
dataType
をjsonp
に設定すると、jQueryが自動的にurl
の末尾に余分な?callback=?
を追加して、コールバックを指定できるようになります。上記のように独自の名前を指定すると、渡すcallback
名が使用されます。 jsonコールバック名を指定する必要がある場合は、jsonpCallback
プロパティを使用します。または、dataプロパティにパラメータとして追加できます。さらに情報が必要な場合は、jQuery API Ajax: http://api.jquery.com/jQuery.ajax/ にアクセスしてください。
結果の文字列に;
を追加することを忘れないでください。
これが役に立てば幸いです!