【问题标题】:POST-ing an URL via AJAX (jQuery)通过 AJAX (jQuery) 发布 URL
【发布时间】:2015-05-20 04:01:21
【问题描述】:

我的网站上有一个包含 URL 的文本字段,即“http://www.google.com”。

当用户更改该字段时,jQuery 通过POST 将更改发送到 PHP 脚本,该脚本将其保存到数据库中。

问题是当 jQuery 尝试发送更改字段的值(即“http://www.google.com”)时,会出现“403 Forbidden”错误。似乎“http://”是有问题的部分。 “ttp://”和“http://”一样。

浏览器是否出于安全原因返回错误?有办法解决吗?

编辑:更改文本字段的事件会触发:

$.ajax({
method: "POST",
url: "updateproject.php",
data: { "id": id, "field": this.name, "value": this.value }
});

编辑 2:这是错误的图像。我应该问我的托管服务提供商吗?

【问题讨论】:

  • 这只是一个字符串,所以应该没问题。你能告诉我们发送请求的代码吗?
  • 请给我们代码以给出合理的答案。
  • 必须正确解析基本 uri,同时排除嵌入的 uri 标点符号,否则可能存在安全风险。尝试将 url 放在括号 中并将它们剥离到您的表单处理程序中。
  • 问题已打开 43 分钟,仍然没有提供代码?请提供您的代码。
  • 电台,您的解决方案效果很好!谢谢!事实上,在 URL 的开头添加任何字符,这样我就不会收到 403 错误 - 字母/数字、点或其他任何内容。除非有更优雅的解决方案,否则这似乎是我的方法。

标签: javascript php jquery ajax post


【解决方案1】:

您需要对 url 进行编码以将其作为参数发送。

查看encodeURIComponent() http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp

【讨论】:

  • 不幸的是,这也没有帮助。感谢您提供帮助。
【解决方案2】:

403 Forbidden 是由服务器而不是您的浏览器返回的。这意味着您需要进行身份验证(可能发送用户名和密码)才能发布您发送的数据。

ttp:// 和 http:/ 不是有效的 uri 标头。所以他们无法通过。服务器很可能会忽略它们。

我也怀疑 google.com 是否允许您跨站点向他们发帖。如果您尝试在您的网站上显示他们的搜索结果,您需要查看他们的搜索 API。

【讨论】:

  • 我认为你误解了这个问题。我不想做跨站点的东西。我只想通过 AJAX 将“google.com”插入数据库。此外,除了包含 URL 的字段之外,还有其他字段可以正常工作,因此这不是身份验证问题。
猜你喜欢
  • 2011-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
相关资源
最近更新 更多