【问题标题】:Jquery form doesn't show submission message on web server but it shows submission message on local hostJquery 表单不在 Web 服务器上显示提交消息,但在本地主机上显示提交消息
【发布时间】:2011-12-07 16:07:17
【问题描述】:

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

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

【问题讨论】:

  • 这是跨域脚本吗,例如托管在 domainA 上的表单并提交到 domainB?

标签: php jquery html ajax forms


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    1. 用户访问 DomainA 上的网页,包括一些 JavaScript(即 jQuery)
    2. 用户提交按钮,jQuery 向 DomainB 上的服务器发出请求
    3. 结果返回给用户浏览器,但客户端禁止来自 DomainA 的脚本检查从 DomainB 检索到的响应。重要的是要了解安全性是在客户端上强制执行的。

    如何解决问题:您在 DomainB 上的应用程序必须设置正确的 HTTP 响应标头,以便浏览器允许您来自 DomainA 的 jQuery 脚本处理响应来自域B:

    Access-Control-Allow-Origin:DomainA
    

    这可能仍然不适用于所有情况。 IE。 Internet Explorer 在 HTTPS 方面确实执行了相当严格的规则,如果我没记错的话,cookie 管理也是一个问题。

    编辑:在谷歌浏览器中你可以很容易地看到这是问题所在:

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 2020-07-16
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多