У меня есть проблема с этим вопросом. Кажется, что это нормальное поведение, так как я пытаюсь сделать запрос на межсайтовый сайт. Я создал свой WebService на основе всего, что я прочитал круглый здесь:AngularJs отправляет ВАРИАНТ вместо запроса POST
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Xml, UseHttpGet:=False)> _
Public Function Test() As String
Me.Context.Response.Clear()
Me.Context.Response.AddHeader("Access-Control-Allow-Origin", "*")
Me.Context.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type")
Me.Context.Response.ContentType = "text/plain"
Return "<test>aRetStr</test>"
End Function
И это простой angularJS сценарий:
var myModule = angular.module('myModule', [])
myModule.controller('myController', function($scope, userRepository) {
userRepository.getAllUsers().success(function(users) {
alert("success");
var myjson = JSON.parse(users);
$scope.users = myjson})
.error(function(data, status, headers, config) {
alert("error");
});
});
myModule.factory('userRepository', function($http) {
return {
getAllUsers: function() {
$http.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
var url = "http://localhost:2693/service.asmx/Test";
var xml = $http.post(url, {test: 'test'});
return xml;
}
};
});
X-Requested-With = XMLHttpRequest
и Access-Control-Allow-Origin = *
и text/plain
тоже думает, что предложил тур здесь Безразлично» т работал в моем случае. Действительно, Firebug покажет мне запрос OPTIONS и отсутствие ошибки XSS, но следующий POST никогда не произойдет. Ошибка alert
срабатывает, и когда это происходит конфиг в функции обратного вызова выглядеть следующим образом:
Accept : application/json, text/plain, */*
Content-Type : application/json;charset=utf-8
X-Requested-With : XMLHttpRequest
method : POST
Что я могу сделать, почему ничего не происходит?
, что делает 'status' держать в обратный вызов ошибки? –
'0'. И 'null' в' data'. –
Вы пытались добавить _Access-Control-Allow-Methods_, с помощью которого вы устанавливаете методы, которые вы разрешаете? то есть 'Access-Control-Allow-Methods: POST, GET, OPTIONS' –