当前位置: 首页 > 面试题库 >

与PHP文件和本地javascript文件的JSON跨域通信

高宏峻
2023-03-14
问题内容

我是JSON新手,但是在PHP和javascript方面有很好的经验。问题很简单,答案可能更简单。我无法将数据从服务器上的PHP文件发送到本地的另一个PHP文件,该文件将从服务器接收JSON格式的数据。我究竟做错了什么?

Javascript Frag(本地)

$(document).ready(function(){
//attach a jQuery live event to the button
$.getJSON('http://www.xpal.com/ws_users.php?action=get_user_data&user_id=33',function(data) {

        alert(data); //uncomment this for debug
        $('#showdata').html("<p>Username= "+data.username+"<br> Email= "+data.email+"<br> Firstname="+data.firstname+"<br> Lastname="+data.lastname+"</p>");
    });

});

PHP Frag(服务器@ xpal.com):

$ users =新用户;

if($_GET['action']=="get_user_data")
{
$user_id=$_GET['user_id'];
$assoc=array(
                "username"=>$users->return_username($user_id),
                "email"=>$users->return_user_emailid($user_id),
                "firstname"=>$users->return_user_firstname($user_id),
                "lastname"=>$users->return_user_lastname($user_id)
            );
echo json_encode($assoc);
}

编辑:

错误消息:XMLHttpRequest无法加载xpal.com/ws_users.php?action=get_user_data&user_id=33。Access-
Control-Allow-Origin不允许Origin本地主机。


问题答案:

要使用jsonp,如其他建议所示,您必须输入“ callback =?”。在网址末尾,或使用$
.ajax()并将dataType指定为jsonp。这里的例子。



 类似资料:
  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery: test.json文件: 什么都没有显示,Firebug告诉我数据未定义。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决办法吗? 问题答案: 是异步的,所以您应该这样做:

  • 一个JS文件想使用本地一个JSON文件中的数据 百度了下,发现不能直接去读取这个JSON文件。可以通过JQUERY的一个方法或者new XMLHttpRequest();这样来获取到JSON文件中的内容,不知道还有没有其他更简洁的方法? https://segmentfault.com/a/1190000038275195

  • 我需要在浏览器中打开一个本地html文件。javascript运行良好,但ajax停止工作,XMLHttpRequest会出现交叉原点错误。有没有办法从本地目录运行ajax。对我来说,它只从本地文件运行是必要的。 谢谢

  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery): test.json文件: 什么都没有显示,Firebug告诉我这是未定义的。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决方案吗? 问题答案: 是异步的,所以您应该这样做:

  • 问题内容: 我似乎无法从Yahoo Finance获得CSV股票文件来“成功”加载。我已经测试了来自其他问题的不同回调和建议,但它们似乎都不起作用- 大多数都没有输出任何内容。 这段代码会发出警报(``错误’‘回调),但是可以在网络面板中成功看到CSV文件。网络面板中的数据按预期显示为“ XOM,Exxon Mobile Corpo”(因此确实已加载)。 我想真正的问题是如何获取我知道的数据。我现

  • 问题内容: 就像标题所说的那样,我正在尝试使用jQuery AJAX调用或访问本地HTML文件来访问(POST)。我无法正常工作。 我做了Google,在这里也看到了几个问题,但无法正常工作。我需要一些帮助。到目前为止,这是我尝试过的。 dataType:jsonp crossDomain:正确 在响应中设置标题: response.setHeader(“Access-Control-Allow-