Jquery表单不在Web服务器上显示提交消息,但它在本地主机上显示提交消息

时间:2011-10-14 10:52:59

标签: php jquery html ajax forms

我搞砸了一个奇怪的问题。我的表单在本地计算机上工作正常,但当我将其上传到某个Web服务器时,它不能正常工作。没有在线上传,当我添加一些值并单击提交。它显示了ThankYou消息。但是当它被上传时,在添加任何值之后,当添加一些值并按下Submit时,值会输入到数据库但是它不显示Thankyou消息而是保持原样。请提出一些解决方案。我该怎么做才能让它在线工作?我应该发送包含表单的单个HTML文件吗?请在此处查看表单:http://dl.dropbox.com/u/33855631/lon_dec/form.htm

我也试过上传到不同的服务器,如bluehost等,但没有解决方案。

2 个答案:

答案 0 :(得分:1)

您确实提出了一个跨域请求(http://www.londondeclaration.com/wp-admin/admin-ajax.php),您的浏览器不允许这样做。将前端和后端托管在同一个域上,或者(如果不可能)将代理托管到您自己域上的外部源。

答案 1 :(得分:0)

正如@PPvG已经提到的,这看起来像跨域脚本。通常,可以执行croos-domain脚本,但必须将相应的HTTP标头设置为指定的here。这就是详细情况:

  1. 用户访问DomainA上的网页,包括一些JavaScript(即jQuery)
  2. 用户提交按钮,jQuery向DomainB上的服务器发出请求
  3. 结果返回给用户浏览器,但是每个plicy 客户端禁止来自DomainA的脚本来检查从DomainB检索到的响应。重要的是要了解安全性是在客户端上实施的。
  4. 如何解决问题:您在DomainB上的应用程序必须设置正确的 HTTP响应标头,以便浏览器允许来自DomainA的jQuery脚本使用响应来自DomainB:

    Access-Control-Allow-Origin:DomainA
    

    这可能仍不适用于所有情况。即当涉及到HTTPS时,Internet Explorer确实执行了相当严格的规则,如果我还记得错误的cookie管理也是一个问题。

    编辑:在谷歌浏览器中,您可以很容易地发现这就是问题所在:

    enter image description here