如何从Web API服务获取数据-无法通过敲除JS加载带有api响应的下拉列表 - javascript

我正在使用一个Web API应用程序,该应用程序具有一个下拉列表,该列表应填充有使用剔除JS的xml格式的API响应。我正在尝试使用以下

$.ajax({
        dataType: "json",
        url: '/api/UserProfiles',
         data: JSON.stringify(self.brokerNames),
        async: false,
        success: function (data) {
            self.brokerNames((ko.utils.arrayMap(data.value, function (broker) {
                var obsBrokers = {
                    UserId: broker.UserId,
                    UserName: broker.UserName
                }

                return obsBrokers;
            })));
        }
    });

我尝试将上面的响应绑定到下拉列表中,如下所示

<td>
  <select id="cbxBCP" data-bind="options: brokerNames, 
      optionsText: 'UserName', optionsValue: 'UserName', 
      value: selectedBidBroker, optionsCaption: 'Bid Broker'">
  </select>
</td>

但是,以上返回空下拉列表。我不确定是什么问题,但是在用Postman调试时看到了XML响应。

Web API是这个

[HttpGet]
[Authorize(Roles="Admin")]
public IEnumerable<UserProfile> Get()
{
    return db.UserProfiles.OrderBy(c => c.UserName);
}

似乎工作正常。

我可以知道如何解决此问题吗?

参考方案

默认情况下,Web API返回XML格式,或者在accepts标头中指定的格式。

在调用$.ajax时,您未指定格式,因此获得了XML。要获取JSON,您需要提供以下两个$.ajax options之一:

接受,使用accepts='application/json'
数据类型,使用dataType='json'

如果您阅读文档,将会看到第二个选项,除了解析接收到的JSON,因此您的data参数直接是JavaScript对象。

注意:您不需要在Web API中注册JSON格式程序,因为默认情况下它是可用的

注意2:要正确调试Web API,您需要使用Postman chrome扩展程序之类的工具,该工具可让您指定标头(上面说明的accepts标头),并使用任何动词GET,POST, PUT,DELETE ...如果仅在浏览器中键入URL,则只会获得默认格式(XML),并且只能测试GET操作,这确实无济于事

如何从Web API发布和获取数据uri图像? - javascript

我正在尝试将数据uri图片从javascript发布到后端asp.net webapi。但是,它给了我input is not a valid Base-64 string错误。现在,我知道这可能是由于数据uri包含“ data:image / png; base64”这一部分。现在,即使我从数据uri中删除了这部分并将仅其余字符串发送到服务器,如何将Bas…

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

Jsonp没有出现``访问控制允许来源''错误 - javascript

在我的PHP中,我喜欢这样来回显jsonp类型的“ json数据”echo $_GET['callback'] . '('.json_encode($arr).')'; 在我的js(angularjs)中,$http.get('http://example.com/app/?callbac…

Javascript IF语句 - javascript

                        嗨,我有这段代码可以正常工作,并将两个日历显示为一个日历。我还有一个php变量$login_session,其中包含登录电子邮件地址的用户。关于如何显示[email protected]日历的任何想法(伪代码)IF $login_session == "[email protected]&#…

提交初始化后删除某些帖子数据 - javascript

在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …