发布不带ajax或表单的JSON数据
Post JSON data without ajax or form
我想要发布一个json对象。我相信我很接近,但数据发送不正确。
数据是正确格式化的json字符串,它可以正确地使用ajax。但是,页面需要根据RESTapi-im请求进行重定向。显然,使用ajax不会发生这种情况。
var data = JSON.stringify(myJsonObject);
$('<form enctype="application/json" action="/projects" method="POST">' +
'<input type="hidden" name="json" value="' + data + '">' +
'</form>').submit();
我认为您需要转义字符串化的JSON。
var data = $(JSON.stringify(myJsonObject);
function escapeHtml(text) {
var map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}
$('<form enctype="application/json" action="/projects" method="POST">' +
'<input type="hidden" name="json" value="' + escapeHtml(data) + '">' +
'</form>').submit();
您的JSON字符串包含引号,它会打断html。
编辑:如果您不关心隐藏输入中的转义(字符串)是否为可读格式,也可以使用转义(string)。然后您可以使用unescape(string)返回json字符串。这样,您也可以使用相同的函数将其传递给get请求;)
{name: "test"}
==> %7B%22name%22%3A%22test%22%7D
示例:https://stackoverflow.com/a/17696884/986160
Curl
怎么样?你可以这样发布数据。你需要一个ajax调用PHP函数:
function sendData($json){
$url = 'wwww.exemple.com';
//setting the curl parameters.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// Following line is compulsary to add as it is:
curl_setopt($ch, CURLOPT_POSTFIELDS,$json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
此函数发送一个json并从API获取返回。
您可以这样做,但id会重定向页面。另一种解决方案是使用$.Ajax或$.post
var form = $('<form enctype="application/json" action="/projects" method="POST">' +
'<input type="hidden" name="json" value="' + data + '">' +
'</form>');
form.submit();
相关文章:
- 如何将JSON数据导入我的ejs模板
- 如何将json数据显示为html
- Json数据包含日期和时间格式
- 用我的json数据填充JQuery DataTable
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 使用jquery读取Json数据
- 如何将本地json数据加载到Extjs数据模型中
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- React-将jSON数据传递给子组件的子组件
- 尝试从控制器加载带有json数据的Simile时间线
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何在ReactJs中显示Json数据
- 使用javascript进行JSON数据检索
- tu如何将id放在填充了json数据的html表td上
- 将JSON数据从服务器加载到knockout.jsobservable中
- 使用JavaScript处理JSON数据
- 如何将json数据传递到.js文件
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- 如何使用var名称调用JSON数据