假设我们有两个页面:A.html
和B.html
。它们没有相同的来源(相同的域,端口或其他东西),但我可以编辑它们。
我想使用B.html
将A.html
嵌入iframe
。 B.html
中的元素使用传递的数据更改为页面(使用jQuery)。
我想从A到B发送一个非常长的字符串。我的第一次尝试是使用url搜索参数:
<iframe src=".../B.html?param=a_very_very_long_encoded_string#some-hash"></iframe>
该应用程序仅在本地计算机上运行良好,但在Web上我收到414 Request-URI Too Large
错误。
我不知道如何只使用客户端才能做到这一点。
有没有其他选择,或者我必须使用POST方法使用服务器端吗?
答案 0 :(得分:2)
这似乎是postmessages的一个很好的用例。 Postmessages允许父页面与其iframe或打开的窗口(两种方式)之间的跨域通信。至于对正在发送的消息大小的限制,我认为它们足够大,可以处理您希望从一个窗口到另一个窗口发送跨域的大多数事情。 MDN没有提及限制。
就浏览器支持而言。所有现代浏览器都支持它,但IE8仅支持iFrames,而IE7根本不支持它。 IE10支持它,但有限制,在MDN中提到。