AngularJS下jsonp跨域SyntaxError问题

JSON Web传输的工程实践:序列化、解析与HTTP状态码驱动 JSON作为Web API最主流的数据交换格式,其本质远不止是字符串序列化——它深度耦合HTTP协议语义、服务端序列化引擎(如Newtonsoft.Json、System.Text.Json)和前端解析行为(如jQuery的dataType、Axios的响应处理)。理解JSON在WCF、MVC、HttpHandler等.NET路径下的差异化表现,掌握DateTime时区、循环引用、字符编码、Content-Type头、GZip压缩等关键细节,是构建高可靠性API的基础。尤其当涉及前后端联调、异常传播与监控告 阅读详情

AngularJS下jsonp跨域missing ; before statement的问题

今天下午帮忙写一段AngularJS的代码,其中用到了跨域请求json。首选当然是$http.jsonp。

使用规则

  1. 指定callback和回调函数名
  2. 函数名为JSON_CALLBACK时,会调用success回调函数,JSON_CALLBACK必须全为大写
  3. 使用jsonp时,返回的数据必须为严格的json格式

示例代码

$scope.getJobs = function () {
        url = 'http://localhost:8082/test.php?callback=JSON_CALLBACK';
        $http.jsonp(url)
        .success(function (response) {
            console.log('Get Jenkins Jobs OK')
            $scope.lists = response.data;
        })
        .error(function (data, status) {
            console.log('Get Jenkins Jobs Bad')
        });
};

出现的问题

由于原来的后台在家里无法访问,所以模仿json数据格式自己用php写了个后台,架在http://localhost:8082上,直接将json数据echo出来。

php后台的代码:

<?php
    $json = '{"code": 200, "message": "OK"}';
    echo $json;
?>

访问后就像下面这样

{ “code”: 200, “message”: “OK” }

写完后发现怎么也读不出来返回的json数据。打开控制台,发现报错SyntaxError: missing ; before statement

百思不得其解。上网查也没查出个所以然,只知道是json格式出了毛病,但是将json串放到json检测工具上去,的确是严格的json格式。

最后看来官方文档

Relative or absolute URL specifying the destination of the request.
The name of the callback should be the string JSON_CALLBACK.

总算明白了,返回的json必须是这种格式

JSON_CALLBACK({ json数据 })

总算搞明白了
于是换成这样写

php后台代码:

<?php
    $callback = $_GET['callback'];
    $json = '{"code": 200, "message": "OK"}';
    echo "$callback($json)";
?>

得到的数据是这样的

JSON_CALLBACK({“code”: 200, “message”: “OK”})

这次可以读出来了,完全没有问题。

XSS攻击脚本全解析:从原理到实战绕过技巧与防御指南 跨站脚本攻击(XSS)是Web安全领域最普遍的漏洞之一,其核心原理在于攻击者能够将恶意脚本注入到受信任的网页中,当其他用户访问该页面时,浏览器会执行这些脚本。这种攻击的技术价值在于它能绕过同源策略,直接窃取用户Cookie、会话令牌等敏感信息,甚至模拟用户操作,危害极大。其应用场景广泛,常见于用户输入点,如搜索框、评论区和资料表单。在实战中,攻击者会利用各种绕过技巧,例如通过HTML实体编码、JavaScript Unicode转义或使用`<img>`标签的`onerror`事件来规避WAF的检测。本文聚焦 阅读详情

相关推荐

人形机器人触觉革命:压电式电子皮肤的多模态感知与自修复技术突破

本文深入探讨了压电式电子皮肤如何推动人形机器人的触觉革命。文章分析了其基于压电效应的多模态感知原理,能够灵敏检测压力、振动与温度,并重点介绍了赋予电子皮肤自修复能力的动态共价网络等前沿材料技术,从而极大提升了机器人与物理世界进行精细、安全交互的可靠性与智能化水平。

weixin_29251567的博客 195

SyntaxError: missing ; before statement,SCRIPT1004: 缺少 ';'

后台list转json的时候火狐和ie分别报不同错误,查了半天没啥结果, 最后发现原来是后台转json之后生成的字符串里面的双引号问题, 因为转成json之后字符串当中存在双引号,前台调用之后会在字符串外面在加一层双引号,造成识别不了json, 所以只要把转换的json里面的双引号换成单引号就可以了。   哈哈第一篇博客

huzepan1987的博客 5256

如何构建智能聊天系统

聊天分为听、思考、读,简单的通过ASR、LLM、TTS三类模型的组合可以实现,最近openai推出支持多模态的GPT-4o模型,可以把三个模型真正融合成在一起。现在市面上的模型百花齐放,各有所长。要实现可落地的方案,需要结合业务,验证模型效果,同时也要考虑方案的可行性,有些模型在国内能用,有些在国内不能用。

xsgnzb的专栏 2110

调用航班查询接口,用jsonp跨域时出现SyntaxError: missing ; before statement错误解决记录

以前没有做过跨域,这几天算是比较懂了,记录一下。 遇到的这个问题,究其原因是,在用jsonp跨域时,返回的数据格式应该是形如 jsonp1({“name”:“CZ3869”}),而接口实际返回的数据是形如{“name”:“CZ3869”},控制台就会出现SyntaxError: missing ; before statement 这样的报错,而网络的状态码是200,表示成功,但是却拿不到数据,

lx_1024的博客 6853

20 CVPR Learning 3D Semantic Scene Graphs From 3D Indoor Reconstructions 学习笔记

3RScan是大规模真实世界的室内场景,特点是对478个自然改变的室内环境在不同的时间帧进行了1482 RGB-D scans,每一个scene都包括了一些位置被改变的物体。它和ScanNet数据集的区别主要在于ScanNet中的每一个采样环境都不相同,但是3RScan中存在采样环境相同但物体的位置不同的场景。Scene Graph Annotations 则是在3RScan的基础上给物体加入了场景图需要的关系、物体特征和类别标注,同时对3RScan进行了扩展,以此形成了场景图数据。

weixin_43508459的博客 1838

关于LIO-SAM编译时出现错误 /usr/bin/ld: 找不到 -lBoost::timer

关于LIO-SAM编译时出现错误: 下载LIO-SAM代码 进入LIO-SAM文件夹,通过以下代码编译: mkdir build cd build cmake .. make 报错: /usr/bin/ld: 找不到 -lBoost::timer collect2: error: ld returned 1 exit status CMakeFiles/lio_sam_imuPreintegration.dir/build.make:759: recipe for target 'devel/lib/li

wwtx的博客 3648

mongoDB运行export导出报错:[js] SyntaxError: missing ; before statement @(shell):1:15

mongoDB运行export导出报错:[js] SyntaxError: missing ; before statement @(shell):1:15   解决方法: 运行mongoexport和mongoimport的时候必须退出当前mongo环境。就是 ctrl+c ! 然后就可以导出了。   附上import小Tip: 当不想输入–file后面的路径时,可以打开要导入...

烟敛寒林的博客 1万+

无人机多旋翼倾转动力测试系统-适用于(eVTOL开发、缩比模型测试、科研教育)

LY-QZ-F4多旋翼倾转动力测试系统是全球首款专为倾转四旋翼设计的多自由度动力测试平台,融合高精度传感、动态倾转模拟与智能工况分析,为下一代eVTOL技术提供全维度验证工具。采用航空级应变传感器(精度±0.1% FS),同步捕获推力、扭矩、俯仰/滚转力矩,动态误差<1%。同时测试电驱动系统(单轴最大150kW)与混合动力单元(增程式),支持高压(800V)平台。通过MET数据采集软件,控制采集一体化,定制化,实时观察上百个传感器数据,实时更改测试需求。可搭配六维姿态平台,温湿度舱、振动台等环境模拟设备。

weixin_49209795的博客 876

AngularJS 用 $http.jsonp 跨域SyntaxError问题

必须添加参数:callback=JSON_CALLBACK , 才能进success方法,如下: $http.jsonp("https://request.address.json?callback=JSON_CALLBACK") .success( function(data, status, header, config){ ...

133

『Apisix进阶(九)』基于Upstream实现服务转发的最佳实践

本篇文章将以服务转发为核心,带你从原理到实战,深入了解 Upstream 的配置方法与常用场景。

老陈聊架构 1518

[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341)

[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341) Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。Drupal在某些情况下,通过文件模块或者子系统上传恶意文件触发XSS漏洞。

qq_51577576的博客 2209

AngularJS 用 $http.jsonp 方法跨域请求数据错误的问题

angular.module('myApp',[]).controller('test11', function test11($scope,$http) {     $http.jsonp("https://api.github.com/repos/cs1707/blog/posts?callback=JSON_CALLBACK")          .success(    

sunnygirl090403的专栏 9473

《QGIS快速入门与应用基础》010:下载过程中常见问题(如网速慢、文件损坏)

针对QGIS下载过程中的常见问题提供了系统解决方案。主要解决下载速度慢(≤100KB/s)和文件损坏两大核心问题:通过切换国内镜像源(如清华大学、阿里云)、使用专业下载工具提升速度;采用MD5/SHA256校验确保文件完整性,并排查存储介质和杀毒软件干扰。文章还包含macOS权限问题、Linux依赖缺失等高频问题的速解方案,并附详细的排查流程图和预防技巧,帮助用户顺利完成QGIS下载。后续将详细介绍安装流程,适合零基础用户参考。

LuckyHanMo的博客 486

通过ajax跨域请求传输formdata,AJAX跨域、使用formdata传输文件(传输截图后的文件)、angularJS跨域...

A网站访问B网站这就是跨域当你调用接口时,F12控制台抛出这状态时,你就跨域了(图示)如何解决跨域呢?解决的几种方法(我现在只用到了这两种)JSONP让后台的小伙伴设置header:如PHP的 header{"Access-Control-Allow-Origin: *"} (视你们后台小伙伴使用后台 语言不同,这种写法略有不同,但基本一样的。)“*”号表示允许任何域向我们的服务端提交请求,建议换...

weixin_36413546的博客 331

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java jsonp 跨域 Uncaught SyntaxError: Unexpected token :

ajax在跨域请求的是,发生跨域问题,因此想到了jsonp来处理, 但是随之而来又来了新的问题

niketwo的专栏 5927

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JSONP实例

页面(原生JS) JSONP DEMO var flightDataHandler = function(data) { alert("您查询的航班结果:票价:" + data.price + ",余票:" + data.tickets + "张"); } var script = document.createElement("script"); scr

Donny的专栏 814

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java angularjs 跨域访问_AngularJS使用JSONP跨域问题(后台WebApi)

这两天接到项目,项目框架是同事已经搭到的,大概看了一下,用的是AngularJS框架,表示没用过,临时看了一下文档,还好文档通俗易懂,整体不是很难,大概算是有个了解。附上教程地址:AngularJS教程好了,下面说正事,由于项目需求,整个项目都是调用的Api,那么问题来了,MVC WebApi也是同事搭的,但是并没有考虑到跨域问题,所有Api在一个项目里面单独存在,A项目要用js访问Api的接口,...

weixin_39717121的博客 170

SyntaxError: missing ; before statement的问题记录

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34324081的博客 2263

jquery ajax请求成功后eval(data)报错 SyntaxError: missing ; before statement

在一次请求中 $.ajax({                 cache : true,                 type : "POST",                 url : "getDataList.action",                 async : false,                 error : function(request)

啊大海全是水的博客 8124

关于 jsonp 报Uncaught SyntaxError: Unexpected token : 解决方法

1、背景: 今天在项目使用跨域跳转时发送如下ajax请求,请求参数类型为jsonp格式(后面会讲jsonp格式与json的区别)。     但是报报以下错误,如下图:     2、仔细观察发现JSON格式是对的,原因如下: a)、JSON是一种基于文本的数据交换方式(不支持跨域),而JSONP是一种非官方跨域数据交互协议。 b)、jsonp是一种特殊的格式的格式,需要在数据...

不甘于平凡的溃败的博客 7916
下一篇: JS不跨域操控网易云音乐外链播放器
摩洛哥大神
博客等级 码龄10年 0粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值