是否有一种方法可以通过ajax调用返回javascript渲染的JSON



我有一种情况,我必须运行一些javascript并从我的网站获得客户端网站上的响应,我正试图想到最好的方法来做到这一点,因为跨域脚本安全。我可以在客户端页面上放置一段代码。我可以随心所欲地修改我自己的网站。

一种选择是通过iframe打开页面,在他们的网站上运行代码片段,获得响应,并设置一个cookie,我可以轮询,以获得响应…

我一直在想不同的方法来做这件事,我正试图变得有创意。我是一个后台的家伙有一点javascript的经验,但没有必须处理跨域的东西。我将感激任何帮助。谢谢你,

可以在您的情况下使用JSONP。

JQuery的例子可以在这里找到

在客户端使用您的代码片段动态创建iframe -然后您将在客户端域沙箱中,并将能够向您的站点发送请求

也许你可以通过ajax调用调用web服务,并通过以下方式返回JSON字符串。

$.ajax({
            type: "POST",
            url: "JSON.asmx/Getdata",
            data: {},
            contentType: "text/javascript; charset=utf-8",
            ContentLength: 15000,
            dataType: "text",
            async: true,
            // timeout:10000,
            success: function (msg) {
                asmxdata(msg);
                return false;
            },
            error: function (xhr, ajaxOptions, thrownError, request, error) {
                alert('xrs.status = ' + xhr.status + 'n' +
                            'thrown error = ' + thrownError + 'n' +
                             'xhr.statusText = ' + xhr.statusText + 'n' +
                            'request = ' + request + 'n' +
                            'error = ' + error);
                return false;
            }
        });

然后在Web服务调用成功时(即这里的方法asmxdata()),您可以通过以下方式将JSON字符串计算为JSON对象:

function asmxdata(data) {
var JObject = eval('(' + data + ');');
}

和赋值给控件

document.getElementById('lblfirstname').value = JObject.Table[i].FirstName;

如果有不清楚的地方请评论

最新更新