2015-06-07 167 views
1

我似乎无法用我的jsonp调用打我的webmethod ...我做错了什么?相反,我得到以下错误..请参阅下面的方法从jsonp不能呼叫web服务

XMLHttpRequest无法加载http://askia.service.local/AskiaService.asmx/Login。请求的资源上没有“Access-Control-Allow-Origin”标题。因此不允许访问原产地'http://askia.web.local'。

Web服务调用

[WebMethod] 
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
    public User Login(string username, string password) 
    { 
     User userLoggedIn; 
     if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) 
     { 
      throw new Exception("username or/and password is not supplied"); 
     } 

     try 
     { 
      var dataAccess = new DataAccess(ConnectionString); 
      userLoggedIn = new User(dataAccess.Login(username, password)); 
     } 
     catch (Exception exception) 
     { 
      throw exception; 
     } 

     return userLoggedIn; 
    } 

JSONP

function AddTaskList(taskListTitle) { 
    var jsonDataObject = JSON.stringify({ 
     'username': 'username', 
     'password': 'password' 
    }); 
    $.ajax({ 
     url: "http://askia.service.local/AskiaService.asmx/Login", 
     contentType: "application/json; charset=utf-8", 
     type: "POST", 
     dataType: "json", 
     data: jsonDataObject, 
     success: function (response) { 
      console.log(response); 
     } 
    }); 
    alert('task list added'); 
} 
+0

数据类型真的是'jsonp'吗?我认真地怀疑...把它改成'json'并看看? –

+0

我已更新我的代码,现在我收到此错误。 XMLHttpRequest无法加载http://askia.service.local/AskiaService.asmx/Login。请求的资源上没有“Access-Control-Allow-Origin”标题。因此Origin'http://askia.web.local'是不允许访问的。 @AkashRajbanshi –

+0

您是否启用Cors? –

回答

0

你有没有尝试改变

dataType: "json", 

dataType: "jsonp",