如何更改:Fullcalendar生成GET请求

时间:2018-05-09 13:57:43

标签: javascript php jquery get fullcalendar

我正在我的网站上实现fullcalendar。

我创建了一个日历为id的div。

我已将SQL查询中的数据放入php变量中,并使用json编码来获得正确的格式。

这是我创建日历的方式:

$html .= "<script src='/wp-content/plugins/biobelt/moment.min.js'></script>
        <script src='/wp-content/plugins/biobelt/fullcalendar.min.js'></script>
        <link rel= 'stylesheet' href='/wp-content/plugins/biobelt/fullcalendar.css' type='text/css'>
        <script>
            jQuery(document).ready(function() {
                var bevents = '".$buildingevents."'
                console.log(bevents)
                jQuery('#calendar').fullCalendar({
                    defaultDate: '" . $_SESSION['statDateFrom'] ."',
                    editable: true,
                    events: bevents,
                });
            });
        </script>";

控制台日志为我提供了我传递给事件的数组的输出,它的格式正确:

[{"id":"1","titre":"1","start":"2018-04-09 07:00:01","stop":"2018-04-09 11:00:00"},{"id":"2","titre":"1","start":"2018-04-09 07:00:01","stop":"2018-04-09 11:00:00"},{"id":"3","titre":"2","start":"2018-04-09 16:00:01","stop":"2018-04-09 21:00:00"},{"id":"4","titre":"2","start":"2018-04-09 16:00:01","stop":"2018-04-09 21:00:00"}, etc...

我从中得到的是: 获取403禁止错误

我检查了apache日志,这是因为URL过长,因为数组的每个字段都放入了url。
出于某种原因,我不想在apache conf文件中更改限制请求行 我想生成一个POST而不是GET请求 我想知道它是如何生成GET请求的,因为我没有将GET放在我的文件中。

编辑:
根据:https://fullcalendar.io/docs/events-json-feed Fullcalendar创建get请求和URL。问题仍然存在,因为URL太长,我想创建一个POST请求。怎么做?

1 个答案:

答案 0 :(得分:0)

您似乎在某种程度上误解了文档。

你说

  

控制台日志为我提供了我传递给事件的数组的输出,并且格式正确

事实上你所展示的确看起来像是一个Javascript数组。所以...它是一个静态数组而不是一个URL。您没有任何类型的服务器端点,您可以对其进行单独的ajax调用以获取事件。因此,您链接到的文章(https://fullcalendar.io/docs/events-json-feed)不相关。相反,您将根据https://fullcalendar.io/docs/events-array)中描述的方法提供静态事件列表。

除此之外......你不是。由于您编写代码的方式,您需要提供字符串而不是数组。这导致fullCalendar假设您提供了一个网址,然后尝试调用该网址,并且它的错误就不足为奇了。

如果您只是从

中删除单引号
global efgh
efgh = 'test2'
def fun_a(abcd):
    print '%s - %s'%(abcd, efgh)

fun_a('test1')

这样就变成了

import argparse

parser = argparse.ArgumentParser(description='Example with non-optional arguments')    
parser.add_argument('country')  
args = parser.parse_args()
country = args.country

那么你的代码应该可以正常工作,因为这会将一个硬编码数组注入JavaScript而不是字符串。