Javascript JQuery,在使用as-promise之前删除一行
出于安全原因,我正在使用一个restapi,其中答案有一个前缀,我无法更改此格式。 例如:Javascript JQuery,在使用as-promise之前删除一行,javascript,jquery,promise,Javascript,Jquery,Promise,出于安全原因,我正在使用一个restapi,其中答案有一个前缀,我无法更改此格式。 例如: 我的请求应该返回一个承诺,但我想删除第一行>抛出'allowIllegalResourceCall为false'最终解决,需要一个: 贝弗?你是什么意思?对不起,我的错,这是一个民族语言问题;)->我的意思是:不能从异步调用的中间返回数据。。。函数已经退出一段时间了。现在您已经知道了问题所在,代码将大大压缩。我将作为一个单独的答案发布。Hi Roamer,在尝试使用数据过滤器时,我无法读取undefine
我的请求应该返回一个承诺,但我想删除第一行>
抛出'allowIllegalResourceCall为false'代码>最终解决,需要一个:
贝弗?你是什么意思?对不起,我的错,这是一个民族语言问题;)->我的意思是:不能从异步调用的中间返回数据。。。函数已经退出一段时间了。现在您已经知道了问题所在,代码将大大压缩。我将作为一个单独的答案发布。Hi Roamer,在尝试使用数据过滤器时,我无法读取undefined的responseText属性。要我在这里发布一些代码,还是我犯了一些明显的错误?请建议。
throw 'allowIllegalResourceCall is false.';
{
"searchResult" : [ {
"name" : "stackoverflow",
"found" : true
} ]
}
var searchAPI = function() {
var errorFunction = function errorFunction(x) {
console.log("searchError:");
console.log(x);
};
var successFunction = function successFunction(x) {
console.log("searchSuccess:");
console.log(x);
};
var parse = function(data) {
var escaped = data.responseText.replace(/^throw [^;]*;/, '');
console.log("parsed:");
console.log(JSON.parse(escaped));
return JSON.parse(escaped);
};
var fn = function() {
var searchFor = $j('#searchfield').val();
console.log("prepare ajay, with: "+searchFor);
var promise = $j.ajax({
url : "/service/rest/stackoverflow/search",
type : "get",
data : {
"query" : searchFor
},
success: function(data, textStatus, xhr) {
console.log('parse');
console.log(data);
return parse(data);
},
// only for debbuging purpose
error: function(data, textStatus, xhr) {
console.log('parse');
console.log(data);
return parse(data);
}
});
promise.done(successFunction);
promise.fail(errorFunction);
// promise.always(alwaysFunction);
}
return fn;
};
parse
Object {readyState: 4, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
parsed:
Object {"searchResult": Array[1]}
searchError:
Object {readyState: 4, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
parsererror
SyntaxError {stack: (...), message: "Unexpected token h"}
var searchAPI = function() {
var errorFunction = function errorFunction(x) {
console.log("searchError:");
console.log(x);
};
var successFunction = function successFunction(x) {
console.log("searchSuccess:");
console.log(x);
};
var parse = function(data) {
var escaped = data.responseText.replace(/^throw [^;]*;/, '');
return escaped;
};
var fn = function() {
var searchFor = $j('#searchfield').val();
console.log("prepare ajay, with: "+searchFor);
var promise = $j.ajax({
url : "/service/rest/stackoverflow/search",
type : "get",
data : {
"query" : searchFor
},
dataFilter: function (data, type)
{
return parse(data, type);
},
});
promise.done(successFunction);
promise.fail(errorFunction);
// promise.always(alwaysFunction);
}
return fn;
};