Crossdomain Ajax对服务的调用并不起作用

时间:2014-03-21 14:37:27

标签: javascript jquery ajax asp.net-mvc

我正在使用ASP MVC,而我正试图调用另一个MVC网站上的服务。

我正在尝试使用以下Ajax调用。

function SomeFunction(decision) {
    if (decision == false)
        decision = "no";
    else
        decision = "yes";

    var input = {
        LogEventType:"PageView",                  
        CurrentPage: "invitation/?decision=" + decision + "&id=" + 32323,
    };
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "https://somewebsite.com/api/ClickStream/LogWebEvent/",
        data: JSON.stringify(input),
        crossDomain: true,
        dataType: 'jsonp',
        headers: {
            'Access-Control-Allow-Origin': '*'
        },
        success: function (data) {
            alert("We're awesome")
        },
        error: function () { console.log("Call to SomeFunction failed.") }
    });
}

我没有得到任何可见的错误,我也在服务和ajax调用的成功/错误函数内部放置了断点,但它从未到达任何一个。

有人看到我搞砸了吗?

编辑: 这是我正在尝试访问的Web Apis功能

[ActionName("LogWebEvent")]
[HttpPost]
public void LogWebEvent(ClickStreamEventDto data)
{
    try
    {
        _clickstreamLogger.LogWebEvent(data);
    }
    catch (Exception ex)
    {

    }
}

ClickStreamEventDto在哪里

public class ClickStreamEventDto: Analytics.IAnalyticEventDto
{
    public string LogEventType { get; set; }
    public string CurrentPage { get; set; }
}

1 个答案:

答案 0 :(得分:0)

使用CORS或JSONP访问跨域网站时,请确保它们既是HTTP又是HTTPS。

确保在涉及HTTPS时,已接受两个站点的证书。您可能需要在另一个窗口中点击HTTPS站点,如果与发行者没有信任关系,则接受证书。