首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问-控制-允许-源站不允许源站http://example.com

访问-控制-允许-源站不允许源站http://example.com
EN

Stack Overflow用户
提问于 2012-09-27 21:05:51
回答 2查看 853关注 0票数 1

我正在尝试从给定的ajax调用中调用webservice方法。我的web服务托管在同一个应用程序中。

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: "http://1.1.1.1/demo/sblead.asmx/SBLeadsSave",
    data: "{'whenNeeded':'" + whenNeeded + "','howLong': '" + howLong + "','size': '" + Size + "','customerName': '" + name + "','mobile': '" + mobile + "','email': '" + email + "','comments': '" + comments + "','nextContract': '','unitLocation': '" + unitLocation + "'}",
    contentType: "application/json; charset=utf-8",

    dataType: "jsonp",
    callback: '?',
    crossDomain: true,

    success: function (response) {
        // debugger;
        var res = response.d;
        if (res == "True") {
            location.href = "http://1.1.1.1/SBleadSuccess.htm";
        } else {
            alert('Data Saving failed please try again');
        }
    },
    failure: function (result) {
        alert(result.status + ' ' + result.statusText);
    },
    beforeSend: setHeader

网络服务方法没有被调用,当我使用Chrome开发人员工具-->网络看到它时,我可以看到响应,因为访问控制允许源http://www.example.com是不允许的。

它可以在测试服务器上运行,但不能在生产服务器上运行。

我怎样才能解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2012-09-27 21:10:04

您需要在响应头中允许您的生产服务器:

代码语言:javascript
复制
Access-Control-Allow-Origin: <production origin> | *

你可以在MDN: HTTP access control (CORS)上看到更多信息。

票数 2
EN

Stack Overflow用户

发布于 2012-09-27 21:10:52

这是因为您正在调用http://1.1.1.1/demo/sblead.asmx/SBLeadsSave,但这并不是您的生产服务器位置。

输入您的生产服务器位置,或直接输入/demo/sblead.asmx/SBLeadsSave

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12622104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档