2017-08-24 108 views
0

我有一个基于其结果的AJAX调用 - 我发送另一个调用。嵌套的JavaScript承诺

uploadDocument = function (doc1, doc2) { 
    $.ajax({ 
     type: "POST", 
     url: "/API/UploadDocs/addDocument", 
     data: doc1, 
     contentType: "application/json" 
    }).then(function (result) { 
     console.log(result); 
     doc2.id=result; 
     return $.ajax({ 
      type: "POST", 
      url: "/API/UploadDocs/addDocument", 
      data: doc2, 
      contentType: "application/json" 
     }).then(function (result) { 
     }); 
    }); 
} 

但是我得到一个Illegal invocation错误,我做错了什么?当存在的一些数据错误通过AJAX

检查DOC1和DOC2的类型传递..也可以尝试通过processData:false到AJAX

+0

[jQuery的 - 非法调用]的可能的复制(https://stackoverflow.com/questions/10324594/jquery-illegal-invocation) – smarber

+1

@smarber这是不一个重复的,我看到这个问题,但没有找到我的问题的答案,谢谢。 – user3378165

回答

1

你正在承诺链接错误!当您退回承诺时,您必须继续使用称为您正在解决的承诺的then

阅读链接部分:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

uploadDocument = function (doc1, doc2) { 
    $.ajax({ 
     type: "POST", 
     url: "/API/UploadDocs/addDocument", 
     data: doc1, 
     contentType: "application/json" 
    }).then(function (result) { 
     console.log(result); 
     doc2.id=result; 
     return $.ajax({ 
      type: "POST", 
      url: "/API/UploadDocs/addDocument", 
      data: doc2, 
      contentType: "application/json" 
     }); 
    }).then(function (result) { 
     //Continue here 
    }); 
} 
1

非法调用错误出现。

+0

谢谢,当我调用'uploadDocument'函数时,我发送了一个不正确的参数,谢谢! – user3378165

+0

很高兴我能帮到你 –