我有一个ASP.NET MVC 3网站,需要在弹出窗口中显示卡片验证页面。卡验证页面实际上在外部网站上,我无法更改它。其中一个要求是我必须对该外部页面发出POST请求并传递自定义标头,以便将卡号预填充到其文本框中。我试过起诉javascript .ajax调用,但返回
XMLHttpRequest cannot load ...
因为他们没有启用跨域访问。如果我使用自定义Action并在webclient里面做一个帖子,然后下载一个响应字符串,然后将它传回一个视图,它实际上不起作用,因为我从他们的页面获得纯HTML源,它丢失所有相对引用他们必须使用脚本和css文件,因为它们现在指向我的网站。有什么办法吗?理想情况下,我想将带有POST请求的页面加载到某些iframe
中答案 0 :(得分:1)
您可以做的是打开弹出窗口并从您的网站加载弹出窗口的初始内容。此内容包含一个隐藏的表单,其中包含需要POST
的所有数据 - 用于卡验证服务。页面加载后(即文档准备好),您使用javascript自动提交隐藏的表单。如果javascript不可用(<noscript>...</noscript>
),您可以显示一个简单的提交按钮,用户需要点击该按钮才能提交隐藏的表单。