jQuery $ .ajax调用可在Chrome中使用,但不能在其他任何浏览器中使用

问题描述

|| 以下调用在Chrome中可完美运行,但在其他所有浏览器中均无法运行。
function getInfo(r,c,f){
  return $.parseJSON($.ajax({
      url: baseURL + \'somethingAPI/getInfo\',data: {
        \"data_r\": r,\"data_c\": c,\"data_f\": f
      },//success: function(data){},dataType: \"json\",async: FALSE
    }).response);
}
是的,我正在使用同步ajax调用,我相信这是必要的,因为我不希望其他任何JS在不执行并返回数据的情况下运行。虽然,我不确定是否成功回调还会发生其他事情。 无论如何,在Chrome中,我得到了响应对象(JSON),并且可以正常访问数据。 有人知道我在做什么错吗?     

解决方法

        关于您不知道如何避免
async: false
的观点,这是否类似于您要实现的目标?
function getInfo(r,c,f,callback) {
  $.ajax({
    url: baseURL + \'somethingAPI/getInfo\',data: {
      \"data_r\": r,\"data_c\": c,\"data_f\": f
    },dataType: \"json\",success: callback,});
}

getInfo(\'foo\',\'bar\',\'baz\',function(response) {
  console.log(response);
});
    ,        这里是我用来克服这些挑战的语法,而不是在ajax查询上解析Json
    $.ajax({
       url: \"pagegoeshere.php\",timeout: 30000,type: \"POST\",data: \'data1=\'+data1+\'&data2=\'+data2,dataType: \'json\',error: function(XMLHttpRequest,textStatus,errorThrown)  {
         alert(\"An error has occurred making the request: \" + errorThrown)
       },success: function(returnjson){                                                                                                   
           var returnstuff = returnjson.returnstuff;
           //Do next Javascript step here
       }
});
您可以在Ajax调用成功时在成功事件和\“ stack \”事件中同时运行随后的javascript / jquery。这样,如果可行,它将继续进行。否则,错误处理可能会以您定义的方式在提供的错误部分中发生。通常,我会在点击处理程序上触发ajax调用,但是一定可以在您选择的函数中运行它。请务必检查您的返回JSON(例如,可以从您的处理页面邮寄),以确保它是有效的JSON。 Jsonlint是您的朋友! 我已经让chrome有效地解析了错误的HTML和JSON,而其他浏览器却几次都没有。我怀疑这是特定原因导致的问题。