【发布时间】:2014-10-14 09:13:04
【问题描述】:
作为一名网络开发人员,我还很陌生。 我有一个从 Facebook Canvas 应用程序(属于第三方服务)发布到我服务器上的文件的表单。然后将响应放入 iframe 中:
<iframe style="width: 0px; height: 0px;" name='theiframe' src='...'> </iframe>
<form style="display: none;" id='mandrill_form' action="https://www.mysite.com/myfile.php" method="POST" target='theiframe'>
<input id='mandrillSend' type="text" name="email"><br>
<input id='nameSend' type="text" name="user"><br>
<input id='addressSend' type="text" name="address"><br>
<input id='zipSend' type="text" name="zip"><br>
<input id='citySend' type="text" name="city"><br>
<textarea id='other' type="text" name="other"> </textarea><br>
<input id='premieInfo' type="text" name="premieInfo"><br>
<input id='mandrillTemplate' type="text" name="template"><br>
<input id='mandrillSubmit' type="submit" value="Submit">
</form>
对于大多数用户来说一切都很好,但 7% 的帖子从未到达 myfile.php。 (我跟踪所有用户点击,以及画布页面上带有第三方 Facebook 插件的浏览器以及我的服务器上的日志文件)。它似乎与特定浏览器没有任何关系。
我正在使用 jQuery .submit() 函数来发送表单。
我的问题是: 我应该如何继续调试以找出导致跨域 POST 请求丢失 7% 的原因?
【问题讨论】:
-
我看不出提交普通表单与 CORS 标头有什么关系……而且我不知道现在实际涉及多少 iframe。好的,来自 FB 的一个,您的应用程序被加载到其中。然后会发生什么?请更具体地描述发生的事情、地点和顺序。
-
你说得对,我应该尝试更具体一些。我的主要问题是我不明白为什么它一直不起作用。 1. 用户从 Facebook 画布应用 (iframe) 中发布表单。数据从那里传输到我的服务器(在其他域上)并返回。 2. 结果显示在位于 FB iframe 内的第二个 iframe 中。我只是不明白为什么它不能 100% 工作。
标签: php jquery facebook debugging