issue with jquery promises
issue with jquery promises
我正在练习jquery promise,在我的演示代码中发生了一些奇怪的事情。我的代码所做的是,当我点击按钮时,它会从服务器接收一个简单的json数据。我使用两个jquery承诺,一个是done()
,第二个是fail()
。当我点击按钮时,它从服务器接收数据,但done()
没有执行,数据通过fail()
显示在控制台中。为什么以及如何解决此问题?以下是我的代码
jquery
var Obj = function () {
return {
gets: function (successHandler, errorHandler) {
console.log('hello');
return $.ajax({
url: '/server.php',
dataType: 'JSON',
type: 'GET'
});
}
}
};
$('.button').on('click', function () {
var obj = new Obj();
var promise = obj.gets();
promise.done(function (data) {
console.log(data);
});
promise.fail(function (e) {
console.log(JSON.stringify(e)); //this logs below
});
输出
{"readyState":4,"responseText":"<?php'n$response = array('oranges', 'apples', 'berries');'nexit(json_decode($response));","status":200,"statusText":"OK"}
这是我的php代码
$response = array('oranges', 'apples', 'berries');
exit(json_decode($response));
return $.ajax({
url: '/server.php'
dataType: 'JSON',
...
但是
"responseText":"<?php'n$response = array ...
jQuery期望JSON
,但服务器提供PHP
源。因此抛出解析异常,拒绝Deferred
并调用.fail()
。
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用jquery在填充自动完成的值后使文本框只读
- jQuery:循环一个具有不同超时值的循环
- 用程序搜索JQuery数据表中的文本
- jQuery Promises with chained setTimeouts
- 如何测试 jQuery 3.0 beta 在浏览器中是否兼容 Promises/A+
- 我可以将Promises传递给jQuery.when(),还是只传递Deferred
- Chain of Jquery Promises
- jQuery Deferred/Promises with many getJSON
- 将ES6 Promises与JQuery Promises混合使用
- jQuery Validation with promises
- jQuery 承诺是否符合 Promises/A+
- jQuery Promises不起作用
- jQuery ajax with ES6 Promises
- 使用Promises加载带有JavaScript的jQuery
- 在jQuery中使用.then()链接promises/Deferred
- 在我的代码中使用Promises?使用deffered对象和Jquery
- issue with jquery promises
- jQuery的异步循环deferred (promises)