这可以通过JavaScript吗?

时间:2012-02-02 12:11:58

标签: c# javascript asp.net

我目前正在研究asp.net项目。我使用oodle web服务。 Oodle通过URL提供结果。我使用Link从网址获取数据。

从后面的代码我使用以下代码来获取结果字符串:

string url = 
    @"http://api.oodle.com/api/v2/listings?
      key=TEST&region=chicago&category=vehicle&format=json";
var jsonString = new WebClient().DownloadString(url);

现在,我的问题是我使用按钮单击事件来运行该代码。但这是通过JavaScript吗?因为如果我使用Javascript,访问我的结果数据会更容易。

3 个答案:

答案 0 :(得分:2)

看起来这个API返回JSONP,这意味着你可以直接从javascript中使用它。例如,如果您使用jQuery,则可以使用$.ajax()方法:

$.ajax({
    url: 'http://api.oodle.com/api/v2/listings?key=TEST&region=chicago&category=vehicle&format=json',
    type: 'GET',
    dataType: 'jsonp',
    jsonpCallback: 'jsonOodleApi',
    success: function(result) {
        alert(result.current.region.id);
    }
});

这是live demo


如果你不使用jQuery,你可以简单地定义一个回调:

var jsonOodleApi = function(result) {
    alert(result.current.region.id);
};

然后包含指向此网址的<script>

<script type="text/javascript" src="http://api.oodle.com/api/v2/listings?key=TEST&region=chicago&category=vehicle&format=json"></script>

这是live demo

显然,只要您想调用API调用,就可以将此脚本标记动态注入DOM。

答案 1 :(得分:1)

您可以通过Javascrypt向页面发出Ajax请求。

here's a tutorial on that

如果你正在使用一些JavaScript框架,比如JQuery,这些请求将更容易制作,因为AJAX请求有点不兼容跨浏览器。

the JQuery version

答案 2 :(得分:0)

你想要的是一个AJAX请求。它当然可能没有库,但由于crossbrowser问题,我建议使用库。以jQuery为例,它可能看起来像这样(在脚本的文档准备部分中):

$("#idOfButton").click(function() {
  $.get('string url= @"http://api.oodle.com/api/v2/listings?key=TEST&region=chicago&category=vehicle&format=json', function(jsonString) {
    alert('Data is now in variable jsonString!');
  });
});