jq $.ajax()でpost送信
2013/08/01
$.ajax()でpost送信してみる。
post送信でjsonを受け取る場合(同一ドメイン)
$.ajax({type:”post”, dataType:”json”, url:”○○○○”});
post送信でjsonを受け取る場合(別ドメイン・クロスドメイン)
dataTypeをjsonpにしてもダメ。jsonpにするとget送信扱いになるらしい。
…ということで、別の方法を考える。
js→同一ドメインのPHPファイルにpost送信→別ドメインのPHPファイルにpost送信。
▼js
var tmpData = {○○○: xxx};
$.ajax({type:”post”, dataType:”json”, url:”○○○○”, data: tmpData});
$.ajax({type:”post”, dataType:”json”, url:”○○○○”, data: tmpData});
▼同一ドメインのPHPファイル
$tmpPost = $_POST[○○○];
$data = array(
“○○○”=>$tmpPost
);
$data = http_build_query($data, “”, “&”);
$header = array(
“Content-Type: application/x-www-form-urlencoded”,
“Content-Length: ” . strlen($data)
);
$context = array(
“http” => array(
“method” => “POST”,
“header” => implode(“\r\n”, $header),
“content” => $data
)
);
$url = “http://○○○○○○○”;
echo file_get_contents($url, false, stream_context_create($context));