2012-02-02 69 views
1

我目前正在从事asp.net项目。我使用oodle网络服务。 Oodle通过URL提供结果。我使用Link从URL获取数据。这是可能通过JavaScript?

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

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,访问我的结果数据会更容易。

回答

1

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

here's a tutorial on that

如果您使用的是一些JavaScript框架,如jQuery,这些要求会更容易做出,由于AJAX请求是有点不跨浏览器兼容。

the JQuery version

+0

实际上我的观点是它不应该放在代码后面。因为我想用java脚本来管理这个,因为jsonstring很容易通过javascript访问! – Chintan 2012-02-02 12:23:35

+0

Jquery是Javascrypt框架,用javascrypt编写,所以它不会进入代码。 – Igarioshka 2012-02-02 12:28:57

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!'); 
    }); 
}); 
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中。

+0

It Works!谢谢 ! – Chintan 2012-02-02 12:36:09

+0

这是有限的oodle!如果你试图改变SRC ='的https://graph.facebook.com/100003596013776/friends/ =的access_token它AAACEdEose0cBAEvWtwZBsyq7RVCEUssCnolhYKUQpXPLkoxvZASmknwHovauVAV3ZCeadOE4rhqD4Ch6wGCZAOYMZA4B6xk5PAWmwZAcZC6zlVPL36TMNJb'将无法工作!为什么这样 ? – Chintan 2012-02-03 13:21:20

+1

@NoOne,我不熟悉Facebook。如果这不起作用,可能是因为它不支持JSONP。 – 2012-02-04 20:53:46