错误:Ajax在jquery函数内调用服务器

我正在尝试对运行wordpress的LAMP安装的本地网络中的服务器进行ajax调用。 我目前正在对wordpress插件中的文件进行更改。</ p>

我想调用位于我的服务器中的php文件来获取json数据以从sql请求构建图表。</ p >

所以我有一个ajaxStatistics.php,我编写了sql请求和json编码。</ p>

现在我在statistics.js中,我有自己的函数来构建 一个图表,这是我进行ajax调用的地方:</ p>

  jQuery(function(){
/ **
*调用ajaxStats.php文件来获取结果 来自db表。
  • /
    $ .ajax({
    url:“192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php",
    type:”GET“,
    成功:功能 (数据){
    console.log(data);
    ...
    </ code> </ pre>

    结果是未捕获的TypeError:无法读取未定义的属性'ajax' </ p>

      at HTMLDocument。&lt; anonymous&gt;(statistics.js:92)
    at i(jquery.js?ver = 1.12.4:2)
    at Object。 fireWith [as resolveWith](jquery.js?ver = 1.12.4:2)
    在Function.r中 eady(jquery.js?ver = 1.12.4:2)
    在HTMLDocument.K(jquery.js?ver = 1.12.4:2)
    </ code> </ pre>
    </ div>

展开原文

原文

I am trying to make an ajax call to a server in my local network installed with LAMP who is running wordpress. I am currently doing changes to files in a wordpress plugin.

I want to call a php file located into my server to get json data to build a chart from a sql request.

So I have ajaxStatistics.php where I coded the sql request and the json encode.

Now I am in statistics.js where I have my function to build a chart and this is where I do the ajax call :

jQuery(function() { 
    /**
     * call the ajaxStats.php file to fetch the result from db table.
     */
    $.ajax({
        url : "192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php",
        type : "GET",
        success : function(data){
            console.log(data);
            ...

The result is an Uncaught TypeError: Cannot read property 'ajax' of undefined

at HTMLDocument.<anonymous> (statistics.js:92)
    at i (jquery.js?ver=1.12.4:2)
    at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4:2)
    at Function.ready (jquery.js?ver=1.12.4:2)
    at HTMLDocument.K (jquery.js?ver=1.12.4:2)

doushi8231
doushi8231 尝试用jQuery=>jQuery.ajax替换$..
2 年多之前 回复
dpj775835868
dpj775835868 你有jQuery吗?
2 年多之前 回复
dti70601
dti70601 我编辑了错误信息
2 年多之前 回复
drq1257
drq1257 请告诉我们错误输出
2 年多之前 回复
doudongfu8006
doudongfu8006 问题是什么?
2 年多之前 回复

3个回答



你试图在初始化之前访问$作为jQuery,以便以正确的方式使用它,你可以使用它的DOM加载事件 像这样... </ p>

  $(document).ready(function(){
function build_statistics(){
$ .ajax({
url:“http ://192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php“,
类型:”GET“,
成功:函数(数据){
console.log(data);
} \ n}
});
</ code> </ pre>

然后将其称为</ p>

  build_statistics()
</ 代码> </ pre>
</ div>

展开原文

原文

You are trying to access $ as jQuery before it gets initialized so to make it in proper way, you can use DOM load event of it like so...

$(document).ready(function(){
    function build_statistics() {
        $.ajax({
        url : "http://192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php",
        type : "GET",
        success : function(data){
            console.log(data);
        }
    }
});

And then call it like

build_statistics()

duanqiao9541
duanqiao9541 我是stackoverflow的新手,我不知道,已经完成了
2 年多之前 回复
doumei2023
doumei2023 我通过使用:http:/wp-content/plugins/pluginname/ajaxStatistics.php而不是Ipadress / etc /解决了它...无论如何,感谢您的帮助!
2 年多之前 回复
dourui7186
dourui7186 它现在说net :: ERR_CONNECTION_REFUSED
2 年多之前 回复



这意味着尚未加载jquery。</ p>

确保您有脚本 您的html,还包含对此函数sendData的调用</ p>

  $(document).ready(function(){
// do stuff
})\ n </ code> </ pre>
</ div>

展开原文

原文

That means that jquery has not been loaded.

Make sure that you have the script in your html, and also wrap the call to this function sendData inside a

$(document).ready(function(){
//do stuff
})

dongzao3923
dongzao3923 是jquery.min.js包含在脚本之前还是之后? 确保链接脚本位于jQuery.min.js之后
2 年多之前 回复
dsh8009271
dsh8009271 我在我的html页面中链接了脚本。我用document.ready包装,它将错误更改为:Uncaught TypeError:$不是函数。
2 年多之前 回复



您的 $ </ code>变量似乎无法在代码中找到。</ p>

< p>试试这个:</ p>

  jQuery(function(){
/ **
*调用ajaxStats.php文件从db表中获取结果。

展开原文

原文

It seems like your $ variable is unreachable in your code.

Try this:

jQuery(function() { 
    /**
     * call the ajaxStats.php file to fetch the result from db table.
     */
    var $ = jQuery;

    $.ajax({
        url : "http://192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php",
        type : "GET",
        success : function(data){
            console.log(data);
            ...

And also make sure to add a http or https in your url.

dreinuqm992401
dreinuqm992401 你可以在某处显示你当前的代码,因为从上面的网址我可以看到,你插入了两次IP。
2 年多之前 回复
dsqbkh3630
dsqbkh3630 我改用https,我有错误:连接被拒绝,我是否需要更改服务器上的内容?
2 年多之前 回复
douduoting8408
douduoting8408 谢谢我认为它有效,因为我收到了错误:GET 192.168.1.100/192.168.1.100/wp-content/plugins/pluginname/... 404(Not Found),问题现在是文件的访问权限,对吧? 奇怪的是,它显示了Ip地址两次......
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐