2010-11-10 67 views
2

我正在使用VS2010与jquery-1.4.1.js版本,我试图访问WCF服务,并且我得到一个奇怪的错误“访问被拒绝”jQuery的1.4.1.js在页码访问被拒绝使用jquery-1.4.1.js

jQuery的1.4.1.js:

// Open the socket 
    // Passing null username, generates a login popup on Opera (#2865) 
    if (s.username) { 
     xhr.open(type, s.url, s.async, s.username, s.password); 
    } else { 
     xhr.open(type, s.url, s.async); 
    } 

这里是我如何打电话

function PostData() {   

     var webMethod = 'http://myservices/SomeService.svc/GetCount' 
     var parameters = "{'Id': '" + "1" + "'}" 
     $.ajax({ 
      type: "POST", 
      url: webMethod, 
      data: parameters, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 
       //$(divToBeWorkedOn).html(msg.d); 
       debugger 
      }, 
      error: function (e) { 
       //$(divToBeWorkedOn).html("Unavailable"); 
      } 
     }); 
    } 

可能是什么问题?我测试我的wcf服务,它工作正常,我尝试通过asp.net连接并添加web引用来查看是否有任何问题。

回答

1

这行是不必要的:

contentType: 'application/json; charset=utf-8', 

它讲述什么样的数据要发送的服务器,而不是你所期望的接收,而你实际上并没有发送任何数据。


编辑

看来你正在呼吁其他域的脚本。这违反了same origin policy:您只能对同一个域上的项目发出AJAX请求。有一种解决方法使用名为JSONP的东西,它需要服务器端的支持。请参阅$.ajax的文档,尤其是JSONP dataType section

+0

我有更新我的问题,我发送一些参数,它取决于我使用的是什么方法,一些方法接受多于一次,有些只接受一个参数。 – 2010-11-15 14:19:06