今天,当我浏览Google API时,我在他们的示例代码中看到,他们只是通过执行
来请求网址<script src="src="https://www.googleapis.com/customsearch/v1?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1.."></script>
对我来说很难过,在看到这个之前我的第一个想法是ajax。现在我很困惑,与此不同2.我无法按上述要求添加用户&#39;在其中输入。
喜欢
"https://www.googleapis.com/customsearch/v1?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1&"'+user+'"
所以如果我使用ajax,会实现相同的吗?对不起,我没有尝试过,但即使我尝试,我仍然感到困惑甚至是什么。
答案 0 :(得分:1)
使用<script src>
检索JSON数据是一种称为JSONP的技术。它解决了跨站点脚本限制(如果它与其来自的页面不同,您的浏览器可能会阻止AJAX请求;它不会以这种方式阻止脚本加载)。缺点是你不能做其他HTTP方法(PUT,POST,DELETE等) - 只有GET。另外,正如@FelixKing指出的那样,服务器必须支持它 - 如果你只是删除一个JSON blob作为<script>
元素的内容,这对你没有任何帮助 - 它必须是发送回调。如果API支持JSONP,则通常会使用callback=functionName
参数,并且发出的脚本将为functionName({... JSON blob here ...})
。
但是,您仍然可以动态添加类似用户参数的内容。您只需使用Javascript将<script>
元素添加到页面中,而不是将其硬编码到HTML中:
var user = "someone";
var scriptTag = document.createElement('script');
scriptTag.src =
"https://www.googleapis.com/customsearch/v1?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1&user="+user
document.getElementsByTagName('html')[0].appendChild(scriptTag);
但我不知道你在做什么,或者该电话是否支持JSONP;这只是使用Javascript动态添加<script>
元素的示例。细节取决于你。
答案 1 :(得分:0)
$.get("https://www.googleapis.com/customsearch/v1?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1&"+user, function(response) {
// process the result here
});
另外需要注意:“&lt; script src = https://www.googleapis ...”是ajax实现使用的方法,如果其他方法失败(例如XMLHttpRequest),那么,你可以(应该)中继在ajax上,让图书馆为你的上下文做更好的事情(这对跨浏览器的支持很有帮助)