<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var Celcius = 0;
$.ajax({
type: "POST",
url: "http:\//www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit",
contentType: "application/x-www-form-urlencoded",
data: 'Celsius=0',
dataType: "text/html",
success: function (msg) {
alert(msg);
},
error: function (xhr, msg) {
alert('fail');
}
});
});
</script>
</head>
<body>
</body>
</html>
上記のページをデスクトップに.htmとして保存します。ブラウザでページを開くと、「失敗」メッセージが表示されます。しかし、あなたがファイトラーをチェックインすると、そのコールは実際に成功しました。フィドラーでは、レスポンスが答えとして32を正しく与えることもわかります(Webserviceは0℃から32 Farenheitに変換されます)。これは私のデスクトップでしばらくの間働いていた後、突然動作を停止しました!このjquery ajaxで成功メッセージが機能しないのはなぜですか?
フィドラーを使用している方にお勧めします。これは、フィドラーから監視された応答です
HTTP/1.1 200 OK
Date: Thu, 05 Apr 2012 23:18:10 GMT
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 87
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">32</string>
アイデアはありますか?
更新:男、URL http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheitはWebメソッドです。ブラウザから直接アクセスすることはできません。ブラウザでリクエストしたい場合は、http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit
jquery ajaxを使用してWebサービスを呼び出したことがある場合にのみ返信してください。
通常、URLを開くだけでエラーが発生します。おそらく彼らはスクリプトをダウンしたか、それは私が直接アクセスしようとしているからでしょうか? – Armatus
urlはajax webservice呼び出しのために機能します。ブラウザからURLにアクセスしたい場合はhttp://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit – developer747
w3schoolsを避けるのが賢明でしょうか(http://w3fools.com/ ) – Quentin