gpt4 book ai didi

Javascript跨域请求

转载 作者:行者123 更新时间:2023-11-30 18:09:47 25 4
gpt4 key购买 nike

我正在尝试像这样跨域发出请求:

    var script=document.createElement('script');
script.setAttribute('src',"http://www.example.com/wordpress/register/?callback=callbackF&ver=2.5&url="+encodeURIComponent(window.location.href));
script.setAttribute("type", "text/javascript");
script.setAttribute("id", "spark_grazit_script");
document.getElementById("spark_static_widget").parentNode.appendChild(script);

随着脚本的创建,它将附加到我拥有的 div 上,并且会有一个请求。请求结束时:

   function callbackF(data){
console.log('Response has finished'+data);
}

该函数应在请求结束时触发。我想要的只是调用回调函数。

我没有收到跨域错误。但是我得到这个错误:

Uncaught SyntaxError: Unexpected token : 

有没有一种方法可以在不求助于 html5 或 jsonp 的情况下实现我想要的。我还能以某种方式通过 ajax 获得响应吗?

更新:响应是一个简单的 json 对象

这是响应:

{ "userid":"24645", "token":"40A164ECA4DE4A4F", "script":"<script type='text/javascript'>var dbnwid=16211; var dbnpid=23113; var dbnwebid=19459; var dbnlayout=21; var dbncolor='#000000'; var dbntitlefontsize='14'; var dbnbgcolortype=1; var dbnheader='You might enjoy reading:'; var dbnremindercolor=2; var dbn_protocol = (('https:' == document.location.protocol) ? 'https://' : 'http://'); </script>"}

最佳答案

Is there a way to achieve what I want without resorting to html5 or jsonp. Can I somehow still get a response with ajax?

您没有使用 ajax。您正在执行 JSONP(或功能相同的操作)。

来自 http://www.eya.com/wordpress/register/?callback=callbackF&ver=2.5&url= 的响应必须是有效的脚本片段。从你的错误信息来看,不是。 (当我尝试它时得到的是一个 404 页面,这往往是一个无效的脚本。)


更新:您的响应是一个有效的 JSON 对象,但不是一个有效的 JavaScript 片段,因为开头的 { 看起来像是 block 的开头而不是 block 的开头解析器的对象文字,因为它没有出现在预期表达式的位置。

为了使其按照您描述的方式工作( JSONP),响应必须将该对象包装在对 URL 中指定的回调的调用中,如下所示:

callbackF({ "userid":"24645", "token":"40A164ECA4DE4A4F", "script":"<script type='text/javascript'>var dbnwid=16211; var dbnpid=23113; var dbnwebid=19459; var dbnlayout=21; var dbncolor='#000000'; var dbntitlefontsize='14'; var dbnbgcolortype=1; var dbnheader='You might enjoy reading:'; var dbnremindercolor=2; var dbn_protocol = (('https:' == document.location.protocol) ? 'https://' : 'http://'); </script>"})

More about JSONP here.

关于Javascript跨域请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14877484/

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