在Firefox中,Ajax调用似乎失败了

时间:2016-09-30 08:55:24

标签: javascript php jquery ajax firefox

我目前正在开发一个项目,我使用Ajax调用将数据从JavaScript发送到PHP脚本。我试图在Stackoverflow上寻找答案,但没有成功,我提出了一个问题。

此代码在我的Chrome浏览器上正常运行,但在我在Firefox或Safari中试用时失败了。

$.ajax({
  method: "POST",
  url: "index.php?option=com_lowbudgetrestvisual&task=sdc.connect&format=json",
  cache: false,
  data: {
    data: data
  },
  success: function(data, http, state) {},
  error: function(http, state, error) {
    console.log("Response -> failed");
    console.log("http : " + http);
    console.log("state: " + state);
    console.log("error: " + error);
  }
});

编辑:每当我尝试登录google chrome时,只需说Response -> success。 当我尝试登录firefox时,我收到以下文字。

Response -> failed http = [object Object] state = error error =

编辑2:我正在制作form,然后将其提交给PHP script,使用PHP将其保存在database中。另一个ajax调用的形式是确保将电子邮件发送给表单中的用户和管理员。我如何确保两者的工作原理是通过以下javascript代码:

    $('#sdc').on("click", function(e) {

        e.preventDefault(); 

   {{ then some codes and the ajax call }}

    });

    $('#sdc').on("click", function() {
        $("#userForm").submit(); 
    });

编辑3:我尝试了console.log("http : " , http);,这就是我在控制台中获得的内容:

    http = Object {
      readyState: 0,
      getResponseHeader: .ajax / v.getResponseHeader(),
      getAllResponseHeaders: .ajax / v.getAllResponseHeaders(),
      setRequestHeader: .ajax / v.setRequestHeader(),
      overrideMimeType: .ajax / v.overrideMimeType(),
      statusCode: .ajax / v.statusCode(),
      abort: .ajax / v.abort(),
      state: .Deferred / d.state(),
      always: .Deferred / d.always(),
      then: .Deferred / d.then(),
      11 more…
    }

1 个答案:

答案 0 :(得分:0)

这个代码在firefox中对我很好。请检查firefox浏览器版本和jquery。请检查服务器php文件路径。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
    $.ajax({
  method: "POST",
  url: "test1.php",
  cache: false,
  data: {
    data: 'test'
  },
  success: function(data, http, state) {},
  error: function(http, state, error) {
    console.log("Response -> failed");
  }
});

</script>