gpt4 book ai didi

javascript - 如何在Javascript中使用file_get_contents和json_decode

转载 作者:行者123 更新时间:2023-12-03 16:31:36 25 4
gpt4 key购买 nike

我正在尝试在Javascript中使用此PHP API。如何在Javascript中使用file_get_contents和json_decode?

PHP API代码

$content=@file_get_contents("http://doma.in/api/?url=http://www.google.com&api=APIKEY");
$url=json_decode($content,TRUE);//Decodes json into an array

if(!$url["error"]){ // If there is no error
echo $url["short"]; //Outputs the short url
}else{
echo $url["msg"]; //Outputs the error message
}

Javascript
(function( $ ) {
$(document).ready(function() {
var url = window.location.href;
var host = window.location.hostname;
var title = $('title').text();
title = escape(title);

var twitter = 'http://twitter.com/home?status='+title+'%20'+url;
var facebook = 'http://www.facebook.com/sharer.php?u='+url;

var tbar = '<div id="sicons">';
tbar += '<a href="'+twitter+'" id="twitter" title="Share on twitter">Twitter</a>';
tbar += '<a href="'+facebook+'" id="facebook" title="Share on Facebook">Facebook</a>';
tbar += '</div>';

});
})(jQuery);

编辑:感谢的回复

data.php
$content = @file_get_contents('http://doma.in/api.php?api=asd4sdf5634d&url=' . urlencode('http://' . $_SERVER['HTTP_HOST']  . $_SERVER['REQUEST_URI']));
echo $content;

我已将此添加到Javascript的顶部
$.getJSON('data.php', function(data) {
if(!data.error){ // If there is no error
alert(data.short) //Outputs the short url
}else{
alert(data.msg)
}
});

Javascript现在看起来像这样
(function( $ ) {
$(document).ready(function() {
var shorturl = data.short;
var title = $('title').text();
title = escape(title);

var twitter = 'http://twitter.com/home?status='+title+'%20'+url;
var facebook = 'http://www.facebook.com/sharer.php?u='+url;

var tbar = '<div id="sicons">';
tbar += '<a href="'+twitter+'" id="twitter" title="Share on twitter">Twitter</a>';
tbar += '<a href="'+facebook+'" id="facebook" title="Share on Facebook">Facebook</a>';
tbar += '</div>';

});
})(jQuery);

我确定我做错了。抱歉,我是Coding(C,C++)的初学者

最佳答案

通过AJAX加载数据是异​​步。您的第一个调用($.getJSON)在页面加载后立即执行,但是您作为参数传递的回调函数仅在基础HTTP请求完成后才执行。这意味着您的程序不会阻止等待HTTP请求。调用$.getJSON(...)后,您的程序将继续运行,并且HTTP请求完成后的某个时候将调用回调方法。

您将在页面加载后立即评估数据(在第二个函数中)。但是,由于数据是异步加载的,因此在呈现文档和执行函数时尚未加载数据。

解决您的问题的方法是将评估您的数据的代码移到$.getJSON(...)的回调函数中:

$.getJSON('data.php', function(data) {
if (!data.error) {
// Process your data here!
} else {
alert(data.msg)
}
});

关于javascript - 如何在Javascript中使用file_get_contents和json_decode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14788412/

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