2011-02-06 4 views
0

.NET 3.5でASPMX Webサービスをホストしているマシンでローカルに実行されている.NET Webformプロジェクトがあります。 WebサービスはIE8のAjaxから呼び出されるとうまく動作しますが、FirefoxとChromeを使用すると機能しません。jQuery AJAXからASMXへのWebサービスは、ChromeまたはFFではなくIEで動作します。

jQueryのコードは次のとおり

$.post("http://localhost:64284/StockService.asmx/DeleteStock", 
    { stockId: '"' + code + '"' }); 

コードは、フォーム要素から取得前の値です。

このサービスは、Internet Explorerから呼び出されたときに正常に動作します。 ChromeやFirefoxでは動作しません。私も$ .ajaxを試しましたが、どちらもうまくいきません。

Firebugは、Netパネルで「Delete Selected Options」を表示します。これはサービスメソッドの名前であるため、奇妙です。私はPOST StockService.asmxを見ることが期待されますが、私はjQuery Ajaxが初めてです。

のかかるアプリケーションは、私のマシンではなく、別のポートで実行されている、Webフォームプロジェクトであるが、4

.NETを実行していることは誰もが何かアドバイスを与えることはできますか?サービスは次のように定義されます。

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
[System.Web.Script.Services.ScriptService] 
public class StockService: System.Web.Services.WebService 
// ... 
    [WebMethod] 
    public JimStock[] DeleteStock(string stockId) 
    { 
     // ... 
    } 
+0

AJAX呼び出しを含むサイトも 'localhost:64284'にありますか?そうでない場合は、クロスドメインAJAX(JSONpを使用して達成する最も簡単な方法)が必要です。 – ThiefMaster

+0

いいえ、それは問題かもしれないと思っています。 64284はWebサービスをホストし、57886は消費するWebアプリケーションをホストします。 両方のアプリケーションが同じサーバー上にあるがDNS名が異なる、つまりhttp:// stockmanagementのhttp:// soapとコンシューマーのサービスである – Sam

+0

はい、ポートは重要です。 IIS(またはより簡単なIIS Express)を使用して、本番環境で計画しているのと同じホスティングを設定します。それについては、別々のプロジェクトに参加しなければならない理由があるのでしょうか? StockServiceが主にWebFormsプロジェクトのAJAXコールバックを処理するために存在する場合、このプロジェクトに構造的に間違ったものはありません。 –

答えて

0

ThiefMasterと株式管理が指摘しているように、問題はクロスドメインであることでした。残念ながら、彼らは答えを残さなかったので、私はしなければならなかった。

1

私はこれを使用して同じことを実装しましたpost

関連する問題