[英]JSON POST Request - JSON data, How to do a post request with data in JSON format on cross server with proxy request
[英]JSON POST Request - JSON data, How to do a post request with data in JSON format
我想发布以下数据:
{
"contactsync":
{ "rev":4,
"contacts":[
{ "fields": [
{
"value":
{
"givenName":"dfgheeej",
"familyName":"ffftestfff"
},
"type":"name",
"flags":[],
"op":"add"
},
{
"value":"fffffff",
"type":"nickname",
"flags":[],
"op":"add"
},
{
"value":"fffff@fffff.com",
"type":"email",
"flags":[],
"op":"add"
}
],
"categories":[],
"op":"add"
}
}
}
到一个网址。 (例如:site.com/anything/add?format=json&wssid=t4764.444&wssid=some_value&windowid=&r=776566756)
如何通过可能的javascript将以上数据发布到url? (我想为其创建一个包含脚本的html文件。)
这一切都不会在同一服务器上发生,我想将数据从另一台服务器发布到另一台。
如果脚本将在同一服务器上,服务器支持CORS或服务器支持JSONP,则可以使用ajax。 使用jQuery,它将是:
var data = {"contactsync":{"rev":4,"contacts":[{"fields":[{"value":{"givenName":"dfgheeej","familyName":"ffftestfff"},"type":"name","flags":[],"op":"add"},{"value":"fffffff","type":"nickname","flags":[],"op":"add"},{"value":"fffff@fffff.com","type":"email","flags":[],"op":"add"}],"categories":[],"op":"add"}]}};
var url = 'site.com/anything/addformat=json&wssid=t4764.444&wssid=some_value&windowid=&r=776566756';
$.post(url, JSON.stringify(data), function(response) {
});
如果您不能使用ajax,则需要在php中创建一个代理(只需将json传递到远程地址并打印响应),例如:
function post($url, $data) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
return curl_exec($ch);
}
function get_raw_post_data() {
if (isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
return $GLOBALS['HTTP_RAW_POST_DATA'];
} else {
return file_get_contents('php://input');
}
}
$url = "site.com/anything/addformat=json&wssid=t4764.444&wssid=some_value&windowid=&r=776566756";
echo post($url, get_raw_post_data());
然后在远程站点的URL内部添加您在同一服务器上使用脚本的地址。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.