如何使用 Asp.net 设置 .asmx webservice 启用跨源

2024-03-16

我的网络服务代码是

 [WebMethod]
     public List<test> GetMachineData_List(string prefix, int person_id)
     {
         using (var db = new TestDB())
         {
             List<test> list = db.Fetch<test>("select id,name from machine_data_collection mc where mc.id=@0 and name like '%" + prefix + "%'", person_id);
             return list.ToList();
         }
     }

我的 jquery Ajax 调用是

 $("#textbx").autocomplete(
            {
                source: function (request, response) {
                 $.ajax({
                        url: 'http://localhost:4787/ws/webservice.asmx/GetMachineData_List',
                        data: { prefix: request.term.toString() ,person_id:1},
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        success: function (data) {
                            var jsonArray;
                            try {
                                jsonArray = $.parseJSON(data.d); // using jQuery
                            } catch (e) {
                                jsonArray = data.d; // using jQuery

                            }
                            response($.map(jsonArray, function (item) {
                                return {
                                    id: item.id,
                                    value: item.Name

                                };
                            }));

                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            var msg = XMLHttpRequest.responseJSON.d;
                            if (msg == undefined) {
                                alert( "Something went wrong !!" + errorThrown);
                            } else {
                                alert( "Error"+ msg);
                            }
                        }

                    });
                },
                minLength: 2,
                select: function (event, ui) {
                    var idControl = this.dataset.bindcontrol;
                    try {
                        alert(ui.item.id);

                    }
                    catch (ex) {
                        alert( "Oops .. Something happend unexpected !! .. Please redo ");
                    }
                }
            }

    );

我在 web.config 代码中启用跨源是

 <system.webServer>
    <httpProtocol>
      <customHeaders>
          <add name="Access-Control-Allow-Origin" value="http://localhost:21702/" />
          <add name="Access-Control-Allow-Headers" value="X-AspNet-Version,X-Powered-By,Date,Server,Accept,Accept-Encoding,Accept-Language,Cache-Control,Connection,Content-Length,Content-Type,Host,Origin,Pragma,Referer,User-Agent" />
          <add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, OPTIONS" />
          <add name="Access-Control-Max-Age" value="1000" />
          <add name="Access-Control-Allow-Credentials" value="true" />
        </customHeaders>
    </httpProtocol>
  </system.webServer>

更改文本框中的文本时发生错误。 Ajax 调用的错误消息是:

XMLHttpRequest 无法加载http://localhost:4787/ws/webservice.asmx/GetMachineData_List http://localhost:4787/ws/webservice.asmx/GetMachineData_List。回复 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。起源 'http://本地主机:21702 http://localhost:21702' 因此不允许 使用权。响应的 HTTP 状态代码为 500。


添加以下代码片段Web.config file:

  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
   </webServices>
 </system.web>
 .............
..............
 <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Headers" value="accept, content-type" />
        <add name="Access-Control-Allow-Origin" value="http://localhost:4200"/>
        <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" /> 
        **...(add additional add names and values when you need).......**
      </customHeaders>
    </httpProtocol>
  </system.webServer>

就我而言<add name="Access-Control-Allow-Origin" value="http://localhost:4200"/>Web 服务消费者应用程序(Angular)的基本 url 是http://localhost:4200.

您必须在该特定位置提及您的基本网址。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Asp.net 设置 .asmx webservice 启用跨源 的相关文章

  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 使用单击事件调用“trigger”方法时的复选框值

    如何在点击事件中获取正确的当前值以通过触发器调用 Html
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 通过套接字获取线路

    是否有一个 libc 函数可以执行与 getline 相同的操作 但可以使用连接的套接字而不是 FILE 流 解决方法是在套接字上调用 fdopen 这样做的时候需要注意哪些事项 这样做 不这样做的理由是什么 这样做的一个明显原因是调用 g
  • 判断表单输入是否有焦点

    我正在 AngularJS 中进行验证 如果有 3 种类型的错误 我会显示一个 div 对于必需的 我只想在页面以空值提交时才显示错误消息 div class error div 对于正则表达式验证 我希望它标记实时的默认行为 div cl
  • jquery onclick 添加左边距

    我正在尝试用 JS 做一些非常简单的事情 但我无法让它工作 我想当点击div添加一个负数margin left到另一个div 但我希望每次点击时都会发生div 而不是像现在这样一次 每次我点击我的 next nav 我想要 nav移动自 1
  • 使用 Devise 注销所有用户

    我在 ruby on rails 应用程序中使用 devise 我有一个使用设备的 User 类和 AdminUser 类 在我的管理面板中 我想注销所有用户 但不注销管理员用户 执行此操作的最佳方法是使用范围级别的注销方法 因此 如果您想
  • TransactionAttribute 注释 (@REQUIRES_NEW) 被忽略

    我遇到了两个单独的事务的问题 这些事务以与实际执行的顺序相反的顺序刷新到数据库 这是业务案例 存在 RemoteJob RemoteJobEvent 一对多关系 每次创建新事件时 都会获取一个时间戳 并将其设置在RemoteJob和Remo
  • 编译器如何知道在哪里可以找到#include

    我想知道 Mac OS X Windows 和 Linux 上的编译器如何知道在哪里可以找到 C 头文件 具体来说 我想知道它如何知道在哪里可以找到带有 lt gt 括号 include Users Brock Desktop Myfile
  • 嵌入式Linux中UART上的9位协议

    我正在尝试在嵌入式 Linux 中的 UART 上强制使用 9 位协议 目前我正在 am335x evm 板上对此进行测试 我计划使用坚持平价来做到这一点 理想情况下 我希望不需要实际修改 omap serial c 驱动程序的任何代码 9
  • 如何将用户从控制台的输入读取为 Unicode 字符串?

    一个C 初学者的问题 这是我目前拥有的 From tchar h define T x T x From tchar h define T x L x In MySampleCode h ifdef UNICODE define tcout
  • AUGraph 弃用是否意味着不再有音频渲染回调?

    我有一个带有详细渲染回调的应用程序 我怀疑是否可以使用 AVAudioEngine 来实现 无论如何 要将我的 AUGraph 渲染回调 具有多个总线 与 AVAudioEngine 一起使用吗 有示例代码吗 The 音频单元API htt
  • Dart 是否有 socket.io 端口?

    我使用这个简单的示例了解了 Dart 中的基本 websocket 功能 https github com financeCoding chat websocket dart https github com financeCoding c
  • 在Java程序中执行PowerShell命令

    我有一个PowerShell Command我需要使用它来执行Java程序 有人可以指导我如何做到这一点吗 我的命令是Get ItemProperty HKLM Software Wow6432Node Microsoft Windows
  • 以编程方式打开/关闭 WiFi 热点

    我需要帮助创建一个在热点模式下设置 Android WiFi 的 C 脚本 这是我设法创建的代码 public bool setAPEnabled bool enabled using AndroidJavaObject activity
  • Play框架和Slick自动数据库创建

    我正在使用 play 2 4 和 Slick 3 是否可以自动生成 ddl 脚本 它是进化吗 在官方文档中我找到了一些脚本 但是我应该将其放在播放框架中的哪里 http slick typesafe com doc 3 1 0 schema
  • alQuran 阿拉伯语语音识别

    我们如何根据以下内容比较两个音频文件或录音机文件Al Quran Al Quran相比之下有特殊的发音Arabic发音 是否可以做用户声音和方式的比较Al Quran发音是 我已经尝试过Google Speech to Text for A
  • Spring Boot如何在jsp页面导入react组件

    我正在创建 Spring boot 应用程序 我希望我的前端使用 React 问题来自于我无法找到一种方法来正确地将 React 组件集成到我的 jsp 页面中 这是组件的声明 ReactDOM render
  • 从 android vlc 媒体播放器获取当前帧

    我在用着VLC Android https code videolan org videolan vlc android为了在我的 Android 应用程序中播放 H264 RTSP 直播流 以下代码成功地将流视频渲染到表面视图上 Medi
  • 尝试将非空字符串设置为“System.Int32”类型

    实体框架抛出此异常 BranchIdentity 的 PasswordIterations 属性无法设置为 System String 值 您必须将此属性设置为 System Int32 类型的非空值 它抛出在这条线上 Validate u
  • 尝试启动库项目 Activity

    我有一个库项目和主项目 我尝试从主项目启动库项目中定义的活动 Intent intent new Intent isr LAUNCH intent setComponent new ComponentName com ISR com ISR
  • 将页脚添加到 ListView 会抛出“无法转换为 android.widget.HeaderViewListAdapter”

    我正在尝试将一个简单的视图作为页脚添加到 ListView 中 这样做会引发ClassCastException cannot be cast to android widget HeaderViewListAdapter 现在 在您将其标
  • 如何使用 Asp.net 设置 .asmx webservice 启用跨源

    我的网络服务代码是 WebMethod public List