我正在开发像jsfiddle这样的新项目。
我在开发过程中遇到了问题。当我尝试在文本框中发送带有JS alert()
函数的ajax请求时,服务器发出403错误。任何人都可以帮我这个吗?
实施例: 转到此网址:http://www.labs.codeteam.in/lab
在javascript文本框中输入alert(1)
并运行该项目,服务器将在控制台中显示403错误。
答案 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>