我用vba给php传递参数的时候,如果是普通的php文件,就可以接受到,而用thinkPHP框架的生成url,就收不到,怎么回事呢?
以下是vba代码:
Setobj=CreateObject("Microsoft.XMLHTTP")obj.Open"POST",sUrl,Falseobj.setRequestHeader"CONTENT-TYPE","application/x-www-form-urlencoded"obj.send(sData)
以下成功:
sUrl="http://localhost/VbaPostDemo.php"sData="a=1&b=2"//对应目录:C:\AppServ\www\VbaPostDemo.php
以下失败:sUrl="http://localhost/yb1/Home/curd/futuresDemo"sData="a=1&b=2"控制器function:functionfuturesDemo(){echo$_REQUEST["a"];}错误提示:":(非法操作:1错误位置FILE:C:\AppServ\www\yb1\ThinkPHP\Library\Think\Controller.class.phpLINE:170TRACE#0C:\AppServ\www\yb1\ThinkPHP\Library\Think\Controller.class.php(170):E('\xE9\x9D\x9E\xE6\xB3\x95\xE6\x93\x8D\xE4\xBD\x9C:1')#1[internalfunction]:Think\Controller->__call('1','')#2C:\AppServ\www\yb1\ThinkPHP\Library\Think\App.class.php(114):ReflectionMethod->invokeArgs(Object(Home\Controller\CurdController),Array)#3C:\AppServ\www\yb1\ThinkPHP\Library\Think\App.class.php(204):Think\App::exec()#4C:\AppServ\www\yb1\ThinkPHP\Library\Think\Think.class.php(120):Think\App::run()#5C:\AppServ\www\yb1\ThinkPHP\ThinkPHP.php(97):Think\Think::start()#6C:\AppServ\www\yb1\index.php(27):require('C:\\AppServ\\www\\...')#7{main}ThinkPHP3.2.3{Fast&SimpleOOPPHPFramework}--[WECANDOITJUSTTHINK]"
使用其他工具Post测试下呢,比如Postman,看看会不会出现这种情况.如果也出现那么说明应该是你代码问题或者是TP问题.如果没有那么说明是你vba问题.
估计是路径错了,你自己手动吧路径在浏览器敲一下,应该是报一样的错!
m,c,a禁用(内部已使用)这问题确实比较扯淡