【问题标题】:Need help in cross-domain form submit and processing result跨域表单提交和处理结果需要帮助
【发布时间】:2016-03-08 17:25:24
【问题描述】:

我有一个 php 页面,其中包含向另一个网站提交值的表单。该网站返回我需要重新提交的数据,但结果是纯文本,我不知道如何处理要提交的数据。

这是该网站返回的内容:

<html><head></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">&lt;form action="XXXX" method="POST"&gt; 
 &lt;input type="hidden" name="MDORDER" value="489397f2-0425-4b05-86f3-7719d81c16c8"&gt; 
 &lt;br&gt; 
 &lt;input type="submit" name="submit" value="Ok"&gt; 
 &lt;br&gt; 
&lt;/form&gt;</pre></body></html>

(复制自 Chrome 检查元素)

我尝试了 ajax 提交,尝试使用 iframe 获取表单,但都不起作用

我不知道如何将其转换为可以使用 jQuery 发布的实际形式。任何意见,将不胜感激。谢谢

【问题讨论】:

  • 您使用什么代码从其他网站检索数据?
  • 使用 ajax 跨域需要通过使用具有正确响应的 CORS 标头来获得其他域的许可。因此,请确保您有权使用该其他服务。
  • 我看不出与跨域这一事实有任何关联。请根据实际问题更新您的主题。并在你的问题中扩展这个真正的问题:你想用返回的字符串来实现什么?你想如何处理它?
  • 感谢 cmets。对不起,不相关的话题,因为我不知道该怎么称呼我的问题。我想要实现的是我想将他们给出的响应转换为我页面上的实际表单,这样我就可以实际提交该表单。 @Adam 在我的 php 页面上,我只有一个表单,它使用方法 GET 向外部网站提交值,并且该网站返回我上面显示的结果。

标签: javascript php forms cross-domain


【解决方案1】:

如果你想使用 jQuery 来做这件事,你可以获取返回的内容,并将编码的字符替换为它们应该是的并将其附加回来,就像这样(我把所有的东西都放在一个 div 里面类测试):

var reformatted = $('.test').text().replace('&lt;','<').replace('&gt;','>');
$('.test').empty();
$('.test').append(reformatted);

然后只需使用 jQuery 提交即可:

$('.test form').submit();

这是一个工作示例,但无需提交:http://codepen.io/caleboleary/pen/RrwWRJ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-12
    • 2012-12-19
    • 1970-01-01
    • 2017-02-14
    • 2014-02-09
    • 1970-01-01
    • 2022-07-20
    • 2011-09-19
    相关资源
    最近更新 更多