JSONP适用于浏览URL而不是刷新

时间:2015-06-01 04:49:48

标签: javascript json jsonp

在一个页面上,我有2个javascripts。第一个脚本(A.js)将脚本附加到父页面的头部以传递JSONP。然后,第一个脚本获取JSONP数组数据并将其放入数组中以供第二个脚本使用。当我转到硬URL时,一切正常。如果我F5它不起作用。如果我在JSONP完成后立即向第一个脚本添加警报,那么一切正常。

所以,我猜测在刷新时,由于某些原因,一切都发生得更快,因此脚本的附加没有机会发生,数组永远不会接收数据。

我该如何解决这个问题?

主页:

<script src="A.js"></script>
<script type="text/javascript">
ArrayValueOnMainPage = ArrayValue.FirstValue
</script>

A.js:

//Fail safe default
ArrayValue = {"FirstValue":["NULL"]};

function initiate(data){    
    ArrayValue = data;
}

function loadJSONP(url){
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;
    head.appendChild(script);
}

loadJSONP('/test.json');

test.json:

initiate({"FirstValue":["Hello"]});

在硬浏览到URL时,FirstValue作为Hello传递。

在F5刷新时,FirstValue作为NULL传递。

0 个答案:

没有答案