打字稿和jquery ajax

我有以下function:

更新:添加返回$ .ajax

searchAjax({url = 'app/php/check.php', data}: {url: any, data: any}): any { return $.ajax({ url: url, type: 'post', dataType: 'text', data: { data }, success: function (return_data) { return String(return_data); }, error: function (xhr, status, error) { var err = eval("(" + xhr.responseText + ")"); console.log(err.Message); return err.Message; } }); } 

现在,check.php返回echo’hi echo 'hi' 。 只是为了测试,我正在尝试console.log响应(在这种情况下为return_data )。 但是我收到错误EXCEPTION: hi is not defined当我尝试console.log时, EXCEPTION: hi is not defined

更新:现在我得到一个带有一堆东西的对象和包含实际响应的responseText。

听起来你的eval没有得到你认为它正在得到的文本。 我相信你的结果:“echo’hi’”正在剥离撇号,所以你实际上正在评估“echo hi”。 这可能是ajax客户端问题。 或者您的API正在剥离它。 检查您的浏览器从API接收的内容。

此外,echo不是原生javascript

回答有点太晚了。 您没有打印回复。 您正在尝试将响应评估为javascript表达式。 在评估期间,javascript不会将“echo hi”视为有效的javascript字符串,并生成错误“hi is not defined”。 然后你不打印ajax响应本身。 您正在打印评估结果,这显然是评估失败。 您可以通过以下方式打印响应:console.log(xhr.response);