首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Safari中的jQuery Ajax调用错误

Safari中的jQuery Ajax调用错误
EN

Stack Overflow用户
提问于 2012-02-24 15:29:42
回答 2查看 2.5K关注 0票数 1

我公开了一个WCF服务,并且我正在尝试使用一个客户端通过一个jQuery ajax调用来调用这些WCF服务。该代码在IE 9中似乎运行良好,但在Safari 5.0.3中出现错误

这是下面这段代码:

代码语言:javascript
复制
<script type="text/javascript">
    $(document).ready(function () {

        $('#butCallAjax').click(function () {


jQuery.support.cors = true;


            $.ajax(
                {

                    type: 'POST',
                    url: 'http://<server_name>/Service.svc/login',
                    data: '{"Domain":"mydomain","UserName":"myusername","Password":"mypassword"}',
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    success: function (data) {

                        alert('success');
                        $.each(data, function (i, theItem) {

                            try {
                                //alert('success add combo');
                              // Other browsers
                            }
                            catch (error) {
                                alert('error found');
//                                combo.add(option); // really old browser
                            }

                        });
                    },
                    error: function (msg, url, line) {
                        alert('error trapped in error: function(msg, url, line)');
                        alert('msg = ' + msg + ', url = ' + url + ', line = ' + line);

                    }
                });


            //alert('button click');

        });
    });
</script>

有人能帮我吗?谢谢!从Safari调用error函数,我可以看到两个警告弹出窗口。

EN

Stack Overflow用户

回答已采纳

发布于 2012-02-29 17:46:30

好了,在做了将近一周的大量试验和错误之后,终于找到了解决方案!

在global.asax文件中添加了这个,safari似乎能够访问POST方法!

代码语言:javascript
复制
String corsOrigin, corsMethod, corsHeaders;

corsOrigin = HttpContext.Current.Request.Headers["Origin"];
corsMethod = HttpContext.Current.Request.Headers["Access-Control-Request-Method"];
corsHeaders = HttpContext.Current.Request.Headers["Access-Control-Request-Headers"];

if (corsOrigin == null || corsOrigin == "null")
{
    corsOrigin = "*";
}

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", corsOrigin);

if (corsMethod != null)
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", corsMethod);

if (corsHeaders != null)
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", corsHeaders);

if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
    return;
} 
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9426973

复制
相关文章

相似问题

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