Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从react组件检索JSONP对象?_Javascript_Reactjs_Jsonp - Fatal编程技术网

Javascript 如何从react组件检索JSONP对象?

Javascript 如何从react组件检索JSONP对象?,javascript,reactjs,jsonp,Javascript,Reactjs,Jsonp,我试图创建一个react组件,该组件接收一个对象,并根据对象的内容呈现多个div,如下所示: X({ "data": [ {"field1": "something", "field2": "something", ...} ... ] )} 我应该从我无法控制的服务器上的JSONP请求接收这样的数据。我的做法如下: getJSON() { let data; function X(json) { data

我试图创建一个react组件,该组件接收一个对象,并根据对象的内容呈现多个div,如下所示:

X({
    "data": [
         {"field1": "something", "field2": "something", ...}
         ...
    ]
)}
我应该从我无法控制的服务器上的JSONP请求接收这样的数据。我的做法如下:

getJSON() {
    let data;

    function X(json) {
        data = JSON.parse(json);
    }

    let script = document.createElement("script");
    script.src = "http://some.path.com/jsonp?callback=X";
    document.head.appendChild(script);

    return data;
}

问题是,当我构建react应用程序时,我在控制台中得到了“未定义函数X”。在web上研究时,我发现函数X必须在全局上下文中才能在脚本运行时找到。是否可以从react组件内部创建全局函数?或者,如果没有,我可以尝试用什么其他方法来解决这个问题?

您的函数是在getJSON()函数中定义的,只需在外部定义它就可以将其包含在全局范围中,但是如果我在全局范围中声明它,我就无法从组件内部检索数据。我试图在第一个react文件中声明它,您将ReactDOM.render(,“root”)放在其中;但它也不起作用。在cors出现多年后,谁还会使用jsonp?