2013-05-30 3 views
0

может ли это работать для разбора xml, поскольку у меня есть синтаксический анализ с использованием json, но он не показывает никакого ответа от веб-службы. это статус WebService HTTP/1.1 405 Метод не допускается 113msjquery Mobile ajax xml post

$j.ajax({ 
    type: "GET", 
    async: false, 
    url: "Service1.asmx", 
    dataType: 'XML', 
    //contentType:'application/json', 
    success: function (data) { 
    $j.each(data, function (index, element) { 
     alert("Successful here: " + element); 
     //$j('#json').append("<li'>"+element+"</li>"); 
    }); 
    } 
}).done(function (data) { 
console.log(data); 
alert("XML Data: " + data); 
}); 

ответ

0

Используйте имя метода в параметре url Аякса, как например: url: "Service.asmx/ConversionRate"

И если вы звоните веб-сервис, который находится в другом домене. Например: ваш .js-файл, в котором вы пишете функцию ajax, находится в www.abc.com, и вы вызываете веб-службу в домене www.xyz.com (т. е.), тогда вам необходимо использовать прокси-сервер с маршрутизацией, как показано ниже или использование jsonp в качестве междоменного вызова не допускается браузерами.

var url = 'http://www.webservicex.net/Service1.asmx/ConversionRate; 
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="' + url + '"') + '&format=json&callback=?'; 

$j.ajax({ 
    type: "GET", 
    async: false, 
    url: yql, 
    dataType: 'XML', 
    //contentType:'application/json', 
    success: function (data) {  
    if(data.query.results){ 
     var result = data.query.results.double.content.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, ''); 
     $j.each(result, function (index, element) { 
     alert("Successful here: " + element); 
     //$j('#json').append("<li'>"+element+"</li>"); 
    }); 
    } 
    } 
}); 

Используйте либо success или done функции, так как оба они служат той же цели.

И если вы используете услугу из того же домена, то вышеуказанный прокси-сервер с сервером не нужен. Тогда код будет выглядеть следующим образом.

$j.ajax({ 
    type: "GET", 
    async: false, 
    url: "Service1.asmx/GetConversion", 
    dataType: 'XML', 
    //contentType:'application/json', 
    success: function (data) {   
     $j.each(data, function (index, element) { 
     alert("Successful here: " + element); 
     //$j('#json').append("<li'>"+element+"</li>"); 
    }); 
    } 
}); 
+0

thankx alot его работа, пожалуйста, сообщите http 500 об ошибке – Hamid