0
<script>
function sendForm() {
  $.post("http://www.website.com/main/post.cfm",$("#testForm").serialize(),function(data,status){
    $("#result").html(data)
  });
  return false
}

  $(document).ready(function() {
  $("#testForm").submit(sendForm);
});
</script>

以及 IFrame 的以下代码:

<form id="testForm" method="post">
<label for="subscriberEmail">Enter your email</label> <input id="subscriberEmail" name="subscriberEmail" type="text" required="yes" validate="email" message="Please enter a valid email address" class="replaceText" value="Enter your email"/>
<input id="subscribe" type="image" src="signup.png"/>
</form>

<div id="result"></div>

div.result 中不显示任何内容。但是,如果我使用 common action="http://www.website.com/main/post.cfm",它会成功返回重新加载整个 IFrame 的消息。

$.post 到 ColdFusion 页面会不会有问题?有什么解决方法或替代方法吗?

4

2 回答 2

0

检查服务器的跨域策略。对于跨域 get 方法调用,使用 JSONP

于 2012-10-05T05:12:34.863 回答
0

简短的回答是“不,不会有 $.post 到 ColdFusion 页面的问题”。CFM 代码 - 在 ColdFusion 服务器上运行 - 完全不知道它接收到的请求是如何实现的:在地址栏中键入 URL、单击链接、提交表单或某些客户端脚本触发请求之间似乎没有区别. 所以这不是 ColdFusion 问题。

您对此处的故障排除(或其报告)有点了解:* 是否有任何 Javascript 错误?(如果是:什么?) * post() 请求实际上是在发出的,如果是,HTTP 请求的详细信息是什么,它是否得到响应?

暂时将您的 post() 调用转换为 vanilla ajax() 调用可能是值得的,这样您就可以指定一个错误处理程序,这样您就可以在出现错误时做出反应(例如将错误写到控制台等)。

于 2012-10-05T06:10:37.987 回答