gpt4 book ai didi

javascript - 如何从 ".js"文件运行 url?

转载 作者:行者123 更新时间:2023-11-28 02:43:04 24 4
gpt4 key购买 nike

环境:Visual Studio 2012、MVC4、Razor、Internet 应用程序。我正在使用 eBay API,我想显示搜索结果 (JSON)。我有一个带有代码的 View 页面...

<script>
function _cb_findItemsByKeywords(root)
{
var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || [];
var html = [];
html.push('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tbody>');

for (var i = 0; i < items.length; ++i)
{
var item = items[i];
var title = item.title;
var pic = item.galleryURL;
var viewitem = item.viewItemURL;

if (null != title && null != viewitem)
{
html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' +
'<td><a href="' + viewitem + '" target="_blank">' + title + '</a></td></tr>');
}
}
html.push('</tbody></table>');
document.getElementById("results").innerHTML = html.join("");
}
</script>

“.js”文件中的这一行:

var url = "http://ebay.com?..."

当我打开此 View 页面时,如何自动执行“.js”文件中的此网址? (此url向Ebay服务器发送请求并接收数据,该数据将显示在此 View 页面上。)

我稍微改变一下问题......如果我从“ View ”页面运行此代码,则一切正常:

<script src=http://ebay.com?... </script>

我如何从“.js”文件接收这部分(“http://ebay.com?...”作为变量)?可能吗?

最佳答案

例如,如果您只想发送请求,则可以将图像添加到 DOM,并将其作为 src

如果您想从请求接收数据,则必须执行 AJAX 调用。在不同的浏览器中,处理方式有很大不同,因此最好使用框架,例如 jQuery。

但是,由于该 URL 与您所在的域不同,因此您将无法通过常规 AJAX 请求访问它。您必须引用所谓的 JSONP 请求。这要求您获取的文档以特定方式格式化以允许此操作。如果不是,JavaScript 根本不会允许这种交互,因为 Same-Origin Policy .

JSONP 要求远程文档具有以下格式:

someCallbackFunction(javaScriptObjectWithData);

如果是这样,您就可以将脚本文件包含到 DOM 中,并以该 URL 作为 src,文档的内容一旦获取,将立即在您的浏览器中执行。然后,您应该已经指定了一个回调函数,其名称与文档中进行的回调相匹配(这通常可以通过原始请求中的查询字符串来指定)。

如果由于远程文档的格式原因,这些选项都不适合您,那么您将不得不从服务器端请求文档。如果您自己无法访问服务器端环境,则可以选择使用其他人的服务器。雅虎的自定义查询语言 - YQL - 可用于查询远程文档的内容,并且 YQL 通过 JSONP 可用,因此您可以通过它们转发您的请求。

See this post on using YQL with JSONP

<小时/>

更新,现在您已经添加了更多数据,eBay API is available for JSONP ,我认为这就是您正在寻找的解决方案。

关于javascript - 如何从 ".js"文件运行 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12364472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com