Javascript Ajax正在工作,但服务器没有响应

Javascript Ajax正在工作,但服务器没有响应,javascript,php,ajax,database,xmlhttprequest,Javascript,Php,Ajax,Database,Xmlhttprequest,所以我尝试了很多方法来解决我的网络问题。我希望在这里找到一个解决办法。问题在于ajax success函数工作正常,在网络部分,它的状态代码为200,数据输入,但它没有响应,数据也没有插入数据库 html表单: 通过AJAX发送的formData变量不包含名为register1的字段,因此代码不会进入第一个if块(if(isset($\u POST['register1']))),并且在该块上没有其他可供选择的输出 只需将该字段添加到formData对象,即可发送该字段。它的内容并不重要,它只是

所以我尝试了很多方法来解决我的网络问题。我希望在这里找到一个解决办法。问题在于ajax success函数工作正常,在网络部分,它的状态代码为200,数据输入,但它没有响应,数据也没有插入数据库

html表单:


通过AJAX发送的
formData
变量不包含名为
register1
的字段,因此代码不会进入第一个if块(
if(isset($\u POST['register1']))
),并且在该块上没有其他可供选择的输出

只需将该字段添加到
formData
对象,即可发送该字段。它的内容并不重要,它只是需要存在。例如:

var formData = {
    'fullName' : $('#reg_fname').val(),
    'userID': $('#reg_uid').val(),
    'phoneN': $('#reg_pnumber').val(),
    'register1': true
}
if(isset($_POST['fullName'])){

或者,您可以保持
formData
不变,只需让PHP检查一个或多个其他必填字段,例如:

var formData = {
    'fullName' : $('#reg_fname').val(),
    'userID': $('#reg_uid').val(),
    'phoneN': $('#reg_pnumber').val(),
    'register1': true
}
if(isset($_POST['fullName'])){

附言。 您应该从代码中删除
async:false
,因为它已弃用且不必要
contentType:'charset=UTF-8'
也无效或无效,您也可以删除它


事实上,不管SQL注入如何,只要在其中一个输入字段中输入
,就可以破坏您的查询,因此,这是另一个整理它的好理由。

通过AJAX发送的
formData
变量不包含名为
register1
的字段,因此代码不会进入第一个if块(
if(isset($\u POST['register1'))
),并且在该块上没有其他可供选择的输出

只需将该字段添加到
formData
对象,即可发送该字段。它的内容并不重要,它只是需要存在。例如:

var formData = {
    'fullName' : $('#reg_fname').val(),
    'userID': $('#reg_uid').val(),
    'phoneN': $('#reg_pnumber').val(),
    'register1': true
}
if(isset($_POST['fullName'])){

或者,您可以保持
formData
不变,只需让PHP检查一个或多个其他必填字段,例如:

var formData = {
    'fullName' : $('#reg_fname').val(),
    'userID': $('#reg_uid').val(),
    'phoneN': $('#reg_pnumber').val(),
    'register1': true
}
if(isset($_POST['fullName'])){

附言。 您应该从代码中删除
async:false
,因为它已弃用且不必要
contentType:'charset=UTF-8'
也无效或无效,您也可以删除它



事实上,不管SQL注入如何,只要在一个输入字段中输入
,就可以破坏您的查询,所以这是对其进行排序的另一个很好的理由。

如果只执行
提交数据($('#reg1').serialize())
,它将以该形式传递所有元素。如果您在某个时候添加了一些输入,那么您也不需要更新JS。不过,您有一个严重的安全问题。你对我敞开了大门!了解如何使用而不是像那样将用户数据直接注入到查询中。永远不要相信没有显式硬编码到代码中的数据。如果您将代码更改为我在第一条评论中建议的代码,它应该可以工作。
是的,这意味着当您按下register1按钮时,它会在内部运行代码。
…不完全正确。这意味着当$\u POST数据在“register1”字段中包含一个值时,它将运行该代码。PHP只在HTTP请求中看到POST值,它对按钮、表单、浏览器或诸如此类的内容一无所知。所以如果你想让它看到那个变量,你必须发送它。它不是在AJAX请求中自动发送的。事实上,我只是测试了它,并且
.serialize()
似乎没有包含提交按钮。如果您只是执行
submitData($('#reg1').serialize())
,它将以该形式传递所有元素。如果您在某个时候添加了一些输入,那么您也不需要更新JS。不过,您有一个严重的安全问题。你对我敞开了大门!了解如何使用而不是像那样将用户数据直接注入到查询中。永远不要相信没有显式硬编码到代码中的数据。如果您将代码更改为我在第一条评论中建议的代码,它应该可以工作。
是的,这意味着当您按下register1按钮时,它会在内部运行代码。
…不完全正确。这意味着当$\u POST数据在“register1”字段中包含一个值时,它将运行该代码。PHP只在HTTP请求中看到POST值,它对按钮、表单、浏览器或诸如此类的内容一无所知。所以如果你想让它看到那个变量,你必须发送它。它不是在AJAX请求中自动发送的。实际上,我只是测试了它,并且
.serialize()
似乎没有包含提交按钮。它是否也需要
事件.preventDefault()
要停止表单正常提交?@riggsfully验证函数末尾的
返回false
应达到相同的效果。它对我不起作用。我采纳了所有的建议,但问题还是一样。ajax成功函数正在运行,服务器状态代码为200,但没有响应,数据也没有插入到数据库中。@Lidor除了“它不工作”之外,您是否对其进行了更详细的调试?当它运行时,它通过PHP代码的路径是什么?它是否按需要输入所有
if
块?是否按照预期填充了所有$\u POST变量?SQL查询命令是否确实运行?您解决了SQL注入问题了吗?如果你不学会分析代码并正确地调试它,你就永远不会解决代码中的小问题。在PHP中添加一些日志来帮助您完成这项工作。如果您需要我们的帮助,请更新问题以显示代码的最新版本。@ADyson是的,我尝试了您的解决方案,代码中没有错误。按submit按钮,事件监听工作进入else语句,因为我在它运行ajax后填充所有字段,从输入中获取所有信息,在网络选项卡的devtools中,状态代码200包含所有ajax信息,但没有响应!这就是问题所在,它是否也需要
事件.preventDefault()
要停止表单正常提交?@riggsfully在o结尾处返回false