服务器在ajax提交上给出403错误

时间:2014-02-25 18:53:34

标签: javascript php html codeigniter http

我正在开发像jsfiddle这样的新项目。 我在开发过程中遇到了问题。当我尝试在文本框中发送带有JS alert()函数的ajax请求时,服务器发出403错误。任何人都可以帮我这个吗?

实施例: 转到此网址:http://www.labs.codeteam.in/lab

在javascript文本框中输入alert(1)并运行该项目,服务器将在控制台中显示403错误。

5 个答案:

答案 0 :(得分:2)

Web服务器可能会返回403 Forbidden HTTP状态代码,以响应客户端对网页或资源的请求,以指示可以访问服务器并了解该请求 ,但拒绝采取任何进一步行动。 状态代码403响应是 Web服务器被配置为拒绝由客户端访问所请求资源

的结果,由于某种原因

可能会配置服务器以防止脚本注入。向服务器发送带有帖子的“alert()”可能看起来像某种类型的服务器注入尝试。

答案 1 :(得分:2)

尝试urlEncode你的字符串,然后再将它发送回你的控制器,然后当你得到它时你可以用PHP解码它

实际上是encodeURI http://www.w3schools.com/jsref/jsref_encodeURI.asp

答案 2 :(得分:0)

错误出现在您的数据中 - 尝试发送无用的内容,例如“asdfasdfasdfas” - 它会没问题,至少我粘贴在文本框中,点击运行,然后在网址http://www.labs.codeteam.in/lab/runProject上我获得200状态码。当我写alert(1)时,确实抛出了403状态代码 - 您的服务器正在将javascript数据视为尝试注入代码。

答案 3 :(得分:0)

我找到了另一种方法来做到这一点。 在ajax请求中提交数据时,我将反转字符串,以便服务器无法识别关键字,在php中我会将其反转并使用它。

答案 4 :(得分:0)

您是否找到了问题的解决方案? 我碰巧遇到了同样的问题,我认为我的服务器由于某种原因而减速,但是在发出ping -i .1 domain.com后,从发送的2000个数据包中,只有.1%〜是丢包。我的查询大约是2毫秒。

我得出的结论是,服务器可能同时处理的请求太多了(我正在执行周期性的ajax请求[大约每4秒1次],在2个js脚本中)。< / p>