angular的post传参后台php无法接收 - 范丁文
很多时候我们需要用ajax提交post数据,angularjs与jq类似,也有封装好的post。
但是jQuery的post明显比angularjs的要简单一些,人性化一些。
两者看起来没什么区别,用angularjs的$http提交的数据,在php服务器端却无法通过$_REQUEST/$_POST获取到。
这是因为两者的post对header的处理有所不同……jQuery会把作为JSON对象的myData序列化,而Angular不会。
解决方案:
修改Angular的$httpProvider的默认处理(最完美的解决方案)
angular.module('MyModule', [], <span style="color: #0000ff;">function</span><span style="color: #000000;">($httpProvider) { </span><span style="color: #008000;">//</span><span style="color: #008000;"> Use x-www-form-urlencoded Content-Type</span> $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'<span style="color: #000000;">; </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * The workhorse; converts an object to x-www-form-urlencoded serialization. * @param {Object} obj * @return {String} </span><span style="color: #008000;">*/</span> <span style="color: #0000ff;">var</span> param = <span style="color: #0000ff;">function</span><span style="color: #000000;">(obj) { </span><span style="color: #0000ff;">var</span> query = ''<span style="color: #000000;">, name, value, fullSubName, subName, subValue, innerObj, i; </span><span style="color: #0000ff;">for</span>(name <span style="color: #0000ff;">in</span><span style="color: #000000;"> obj) { value </span>=<span style="color: #000000;"> obj[name]; </span><span style="color: #0000ff;">if</span>(value <span style="color: #0000ff;">instanceof</span><span style="color: #000000;"> Array) { </span><span style="color: #0000ff;">for</span>(i=0; i<value.length style="color: #000000;">i) { subValue =<span style="color: #000000;"> value[i]; fullSubName </span>= name + '[' + i + ']'<span style="color: #000000;">; innerObj </span>=<span style="color: #000000;"> {}; innerObj[fullSubName] </span>=<span style="color: #000000;"> subValue; query </span>+= param(innerObj) + '&'<span style="color: #000000;">; } } </span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(value <span style="color: #0000ff;">instanceof</span><span style="color: #000000;"> Object) { </span><span style="color: #0000ff;">for</span>(subName <span style="color: #0000ff;">in</span><span style="color: #000000;"> value) { subValue </span>=<span style="color: #000000;"> value[subName]; fullSubName </span>= name + '[' + subName + ']'<span style="color: #000000;">; innerObj </span>=<span style="color: #000000;"> {}; innerObj[fullSubName] </span>=<span style="color: #000000;"> subValue; query </span>+= param(innerObj) + '&'<span style="color: #000000;">; } } </span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(value !== undefined && value !== <span style="color: #0000ff;">null</span><span style="color: #000000;">) query </span>+= encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&'<span style="color: #000000;">; } </span><span style="color: #0000ff;">return</span> query.length ? query.substr(0, query.length - 1<span style="color: #000000;">) : query; }; </span><span style="color: #008000;">//</span><span style="color: #008000;"> Override $http service's default transformRequest</span> $httpProvider.defaults.transformRequest = [<span style="color: #0000ff;">function</span><span style="color: #000000;">(data) { </span><span style="color: #0000ff;">return</span> angular.isObject(data) && String(data) !== '[object File]' ?<span style="color: #000000;"> param(data) : data; }]; });</span></value.length>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTML是构建网页结构的基石。1.HTML定义内容结构和语义,使用、、等标签。2.提供语义化标记,如、、等,提升SEO效果。3.通过标签实现用户交互,需注意表单验证。4.使用、等高级元素结合JavaScript实现动态效果。5.常见错误包括标签未闭合和属性值未加引号,需使用验证工具。6.优化策略包括减少HTTP请求、压缩HTML、使用语义化标签等。

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。
