Ajax get jsonp给出错误代码500"请求被阻止"来自MVC应用程序

时间:2016-03-30 17:46:10

标签: javascript ajax asp.net-mvc jsonp

我正在编写MVC应用程序,我需要通过jsonp通过ajax调用访问某些服务。

然而,当我在Visual Studio(IIS Express)中运行我的代码时,我总是回到状态代码500"请求被阻止",不幸的是,小提琴手没有看到该请求所以我不知道有关错误的更多信息,只有IE / chrome的开发人员工具中的网络选项卡有效。

当我提出请求时,在网络选项卡中,我看到500,我复制了请求网址,将其粘贴到我的浏览器中,等等,它有效,我得到了回复。

现在我已经创建了一个看起来与我使用的代码几乎完全相同的JSFiddle(仅代替内联脚本,我将它放在单独的文件中),令人惊讶的是,JSFiddle工作:

ko.bindingHandlers.autocomplete = {
init: function(element, params) {
    $(element).autocomplete(params());
},
update: function(element, params) {
    $(element).autocomplete("option", "source", params().source);
}
};

var example = example || {};
example.cities = (function ($, jQuery, ko, undefined) {
"use strict";

function ViewModel() {};

ViewModel.prototype.searchCities = function(request, response) 
{
     if (request) 
     {
            $.ajax({
            url: 'http://gd.geobytes.com/AutoCompleteCity',
            type: 'GET',
            data: {q: request.term},
            dataType: 'jsonp',
            jsonp: 'callback',
            crossDomain: true,
            success: function (data) { response(data); alert('response: ' + data) },
            error: function (jqXHR, textStatus, errorThrown) {}
            });
     }
};    

return { ViewModel: ViewModel };

})($, jQuery, ko);

ko.applyBindings(new example.cities.ViewModel());

jsfiddle

为了进行测试,我将脚本内联,但仍然不起作用。我错过了什么?

1 个答案:

答案 0 :(得分:0)

最后我发现它,结果是AdGuard(安装在我的电脑上)阻止了来自localhost的cors请求,实际上是有意义的