如何打开弹出窗口并向其发送JSON对象

我想将一个JSON对象发送到PHP文件,而我的脚本在一个新的弹出窗口中打开该PHP文件。 是否可以通过POST方法(通过jQuery或没有它)发送它?

如果没有,我如何将JSON转换为URL编码的字符串? 有没有JavaScriptfunction?

您可以使用输入(使用JSON填充值)和关于弹出窗口名称的目标属性( window.open()第二个参数)创建一个表单(动态)。

然后发送此表单。

  1. 打开弹出窗口: var popup = window.open(...)
  2. 将json对象分配给新窗口中的新变量: popup.json = ...
  3. 在弹出窗口中使用变量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的一部分。

我希望这就是你想要的。