gpt4 book ai didi

javascript - (不允许的方法)外部 xml 到 json

转载 作者:行者123 更新时间:2023-11-28 08:58:45 25 4
gpt4 key购买 nike

我正在使用本教程: http://rabidgadfly.com/2013/02/angular-and-xml-no-problem/

启动 XML 应用程序,当我设置外部 xml (Feedburner) 时告诉我我没有访问权限,有人知道它可能是什么吗?

HTML:

<section ng-controller="AppController" class="container-podcastapp">
<ul>
<li ng-repeat="guitar in dataSet">
<div class="resultwrapper">
<h2>{{item.title}}</h2>
</div>
</li>
</ul>
</section>

JavaScript:

angular.module('myApp.service',[]).
factory('DataSource', ['$http',function($http){
return {
get: function(file,callback,transform){
$http.get(
file,
{transformResponse:transform}
).
success(function(data, status) {
console.log("Request succeeded");
callback(data);
}).
error(function(data, status) {
console.log("Request failed " + status);
});
}
};
}]);

angular.module('myApp',['myApp.service']);

var AppController = function($scope,DataSource) {

var SOURCE_FILE = "http://rss.cnn.com/services/podcasting/ac360/rss.xml";

xmlTransform = function(data) {
console.log("transform data");
var x2js = new X2JS();
var json = x2js.xml_str2json( data );
return json.item;
};

setData = function(data) {
$scope.dataSet = data;
};

DataSource.get(SOURCE_FILE,setData,xmlTransform);

};

最佳答案

“方法不允许”通常意味着您向其发送请求的服务被配置为禁止某种请求类型(POSTGET选项)。

由于您正在尝试(据我所知)使用 GET 方法,我建议尝试使用 POST

另一方面,在某些情况下,服务器会完全禁止跨域 ajax 请求 - 您正在查询的这个 URL 很可能实际上并不是服务器上的静态文件,而是某种服务,在这种情况下,它具有配置为允许来自不同域的 Ajax 请求。

如果您可以发布收到的整个错误/响应(使用 Fiddler 或其他方式),那将会很有帮助,以防使用 POST 无法完成该工作。

编辑:

尝试对您的服务进行以下更改:

angular.module('myApp.service',[]).
factory('DataSource', ['$http',function($http){
return {
get: function(file,callback,transform){
$http.post(file, {}, {transformResponse:transform}). // this is the change
success(function(data, status) {
console.log("Request succeeded");
callback(data);
}).
error(function(data, status) {
console.log("Request failed " + status);
});
}
};
}]);

关于javascript - (不允许的方法)外部 xml 到 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18064106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com