如何打开弹出窗口并向其发送JSON对象
我想将一个JSON对象发送到PHP文件,而我的脚本在一个新的弹出窗口中打开该PHP文件。 是否可以通过POST方法(通过jQuery或没有它)发送它?
如果没有,我如何将JSON转换为URL编码的字符串? 有没有JavaScriptfunction?
您可以使用输入(使用JSON填充值)和关于弹出窗口名称的目标属性( window.open()
第二个参数)创建一个表单(动态)。
然后发送此表单。
- 打开弹出窗口:
var popup = window.open(...)
- 将json对象分配给新窗口中的新变量:
popup.json = ...
- 在弹出窗口中使用变量
json
(它可以作为window.json
访问,也可以从弹出窗口中运行的JavaScript代码中访问json
)。
有一个JSON编码器/解码器看起来像它可以完成这项工作。 在将对象添加到查询字符串之前,可以调用它来编码对象。
例
alert(JSON.encode([0,1,false,true,null,[2,3],{"some":"value"}])); // [0,1,false,true,null,[2,3],{"some":"value"}] alert(JSON.decode('[0,1,false,true,null,[2,3],{"some":"value"}]')) // 0,1,false,true,,2,3,[object Object]
您可以使用Ajax API执行此操作…在Ajax API中 ,您可以指定data属性并将其设置为JSON ,它将根据您设置的类型将数据发送到服务器,即GET或POST 。
例如:
$.ajax( { url: url, // Your post URL type:"POST", // or GET data: {a:1} // In your case, your JSON object success:function(response){}, // Function that will be called when your posted URL responds crossDomain: true, // If it's a cross-domain request dataType: "json" // Response datatype: JSON, text, HTML, XML, etc. } );
需要注意的一点是,如果需要处理您的响应,则需要绕过浏览器设置的相同原始策略。 请阅读相同的内容。 你可以使用一种叫做JSONP的东西。 它是Ajax API的一部分。
我希望这就是你想要的。