Javascript JQuery,在使用as-promise之前删除一行

Javascript JQuery,在使用as-promise之前删除一行,javascript,jquery,promise,Javascript,Jquery,Promise,出于安全原因,我正在使用一个restapi,其中答案有一个前缀,我无法更改此格式。 例如: 我的请求应该返回一个承诺,但我想删除第一行>抛出'allowIllegalResourceCall为false'最终解决,需要一个: 贝弗?你是什么意思?对不起,我的错,这是一个民族语言问题;)->我的意思是:不能从异步调用的中间返回数据。。。函数已经退出一段时间了。现在您已经知道了问题所在,代码将大大压缩。我将作为一个单独的答案发布。Hi Roamer,在尝试使用数据过滤器时,我无法读取undefine

出于安全原因,我正在使用一个restapi,其中答案有一个前缀,我无法更改此格式。 例如:


我的请求应该返回一个承诺,但我想删除第一行>
抛出'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;

};