Django AJAX JSON 响应在浏览器中显示为原始文本

2024-04-25

我正在 Pinax 框架内使用 Django (1.4.2) 开发一个 Stripe Web 应用程序:

  1. django-stripe-付款
  2. 艾尔达瑞安-阿贾克斯

我已经一切正常,除了 ajax 响应(JSON 格式)似乎没有被任何 ajax 回调处理,因此在浏览器中显示为原始 JSON 数据:

{"html": "\n\n<div class=\"change-card\">\n    <h2>Current Card</h2>\n    <p class=\"lead\">\n        \n            Current card on file is a <strong>Visa</strong>\n            ending in the digits <strong>4242</strong>.\n        \n    </p>\n    \n    \n    \n    <form action=\"/payments/a/change/card/\" data-stripe-key=\"\" class=\"form ajax\" data-replace-closest=\".change-card\" method=\"POST\">\n        <div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='<>' /></div>\n        <input name=\"stripe_token\" type=\"hidden\" />\n        <a href=\"\" class=\"btn btn-primary change-card\">Change Card</a>\n    </form>\n</div>\n"}

这个问题 https://stackoverflow.com/questions/21774731/django-stripe-paymants-and-eldarion-ajax-subscribe-json-response似乎很相似,但没有官方答案,提交者似乎已经弄清楚了(根据评论),但这些建议对我不起作用。

Details:

我在用着python manage.py runserver在 Chrome 和 Firefox 中进行测试。

我刚刚开始使用 stripe 应用程序,并且刚刚使用了 django-stripe- payment 中的示例来开始工作,然后再根据我的特定需求进行定制。

我正在运行的测试用例涉及使用 django-stripe- payment 中的标准 ajax 表单来更改存储的信用卡:

<form action="{% url 'payments_ajax_change_card' %}" data-stripe-key="{{ STRIPE_PUBLIC_KEY }}" class="form ajax" data-replace-closest=".change-card" method="POST">
    {% csrf_token %}
    <input name="stripe_token" type="hidden" />
    <a href="" class="btn btn-primary change-card">{% if request.user.customer.card_kind %}Change{% else %}Add{% endif %} Card</a>
</form>

我的基本模板中有一些 javascript,当选择“更改卡”按钮时,它们会被调用并显示条带中的表单以输入卡详细信息。我不认为这是有问题的 - 我直接从here http://django-stripe-payments.readthedocs.org/en/latest/installation.html#static-media.

我有以下功能:

<script src="{% static "js/jquery-1.9.1.min.js" %}"></script>
<script src="//checkout.stripe.com/v2/checkout.js"></script>

下面这个

<script src="{% static "js/eldarion-ajax.min.js" %}"></script>

返回令牌(以及随后的表单提交事件)后,将执行以下视图代码:

@require_POST
@login_required
def change_card(request):
    try:
        customer = request.user.customer
        send_invoice = customer.card_fingerprint == ""
        customer.update_card(
            request.POST.get("stripe_token")
        )
        if send_invoice:
            customer.send_invoice()
        customer.retry_unpaid_invoices()
        data = {}
    except stripe.CardError, e:
        data = {"error": e.message}
    return _ajax_response(request, "payments/_change_card_form.html", **data)

再次...这是开箱即用的 django-stripe-支付代码。接下来发生的是如上所述的原始 JSON。


好的,我解决了。事实证明确实是jQuery的问题。我在我的应用程序中引用了两个 jQuery 文件。当我删除第二个并坚持使用上面问题中提到的那个时,它起作用了!我的信用卡详细信息按预期在页面上更新(尽管速度很慢)。

因为我使用的是 pinax 框架,所以它自动附带了 jquery 参考。至少 Django 调试工具栏需要它。它包含在“base.html”文件内:

{% block script_base %}{% endblock %}

(“base.html”位于此处:pinax_theme_bootstrap/templates/theme_bootstrap)

幸运的是,base.html 提供了一个名为“jquery_src”的可重写块,因此在应用程序的“site_base.html”文件中,我只需在底部输入以下内容:

{% block jquery_src %}{% endblock %}

这删除了第二个 jQuery 库。

我还尝试使用 jQuery v1.11.0,这被认为是有问题的我之前提到的这个问题 https://stackoverflow.com/questions/21774731/django-stripe-paymants-and-eldarion-ajax-subscribe-json-response它也起作用了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django AJAX JSON 响应在浏览器中显示为原始文本 的相关文章

随机推荐

  • 删除列值 < 0 的 Pandas DataFrame 行

    我已经阅读了答案this https stackoverflow com questions 18172851 deleting dataframe row in pandas based on column value线程 但它没有回答我
  • 想了解 Windows 剪贴板内部结构

    我有兴趣学习 Windows 系统内部结构及其工作原理 我倾向于学习windows上的系统编程 在这种背景下 我很想知道有关 Windows 剪贴板内部功能的一些事情 当我们选择一些文本 图像等并按下时会发生什么 Ctrl C 当我们在不同
  • /system/lib/libart.so 中的本机崩溃

    我在 Play 商店中有一个应用程序 它有一个IntentService当应用程序启动时 它会做一些工作 并且会导致 Android 5 0 上的本机崩溃 该服务仅扫描资产文件夹以进行应用程序更新 具体来说 这次崩溃似乎发生在升级到 Lol
  • 地形破坏后保留资源

    我想在关闭使用 terraform 创建的一堆资源 包括 CloudWatch 日志组 后保留 CloudWatch 日志 有没有办法告诉terraform destroy节省一些资源 我想我可以在调用 destroy 之前手动从 tfst
  • 如何使用 Azure Active Directory Graph API 获取属于 AppRole 的所有用户

    我一生都无法弄清楚如何查询 Azure Active Directory 的图形 API 来获取属于特定 AppRole 的所有用户 首先我尝试了类似的东西 client Users Where u gt u AppRoleAssignme
  • 如何防范资源耗尽等漏洞?

    我们碰巧使用IBM appscanhttp www 01 ibm com software awdtools appscan http www 01 ibm com software awdtools appscan 针对我们的 java
  • 仅使用 CSS 切换手风琴字形图标

    嗯 我有一个手风琴菜单 我想更改字形图标 我找到了一些询问同样问题的人的答案 但我发现没有答案适用于我的 可能是因为我不知道在哪里应用代码 我在 Jsfiddle 中的菜单 http jsfiddle net 3wt0ehcj http j
  • 连接从左到右 (LTR) 和从右到左 (RTL) 文本

    似乎使用组合从左到右 LTR 和从右到左 RTL 文本paste可能会产生意想不到的结果 x paste c green collapse arabic for blue and red gt 1 green paste x yellow
  • Java If(false) 编译

    我正在使用 Tomcat 开发一个动态 Web 项目 有一个全局标志很有用 这是我在开发服务器和部署服务器之间唯一需要更改的东西 该标志的最大用途是与打印语句一起使用 public class Debug public final stat
  • 安卓定时器问题

    您好 我正在构建一个应用程序 它将在固定的时间段 例如每 30 分钟 执行一段代码 我希望这个时间段是严格的 我的意思是我希望保证该时间段为 30 分钟而不是 28 分钟 或者每当操作系统想要执行它时 我有一个 Timer 对象并按如下方式
  • 如何在本机反应中使用高度自动?

    在浏览器中 可以指定图像的宽度 并且可以将高度设置为自动 这将使图像在绑定到指定宽度的同时保留宽高比 高度和长宽比均事先未知 我怎样才能在本机反应中做同样的事情 Height 属性只能接受数字值 解决方法 得到Dimensions模块来自r
  • 如何展平嵌套 JSON

    尝试将嵌套的 json 响应从 2 层深度压平到 1 层 这是我在 Go Playground 上的工作代码 http play golang org p kHAYuZUTko http play golang org p kHAYuZUT
  • 找出 2 个日期之间的月数

    select age 2012 11 30 00 00 00 timestamp 2012 10 31 00 00 00 timestamp age 2012 12 31 00 00 00 timestamp 2012 10 31 00 0
  • 将MapPageRoute添加到asp.net mvc项目后,站点停止进入Home Controller

    我正在尝试在我的 asp net mvc 项目中路由 aspx Webforms 页面 我在 global asax 中注册该页面 routes IgnoreRoute resource axd pathInfo routes MapPag
  • 如何使用 VS Code 浏览器进行导航

    这是一个关于 VS Code 资源管理器窗口导航的问题 在 Windows 资源管理器应用程序中 我可以立即导航到我选择的任何文件 如果 Windows 资源管理器窗口以升序名称顺序显示我的文件夹或文件 我可以通过键入我要查找的文件 文件夹
  • 获取 angular2 中表单的所有值

    我可以使用以下代码获取表单的值
  • 查找集合列表中不相交集合对的数量

    问题陈述如下 给定一个包含 n 个集合的列表 每个集合包含 k 个整数 找到不相交集合对的数量 假设集合的可能元素为正 且上界为 c gt n 并且假设 k 我试图想出一种有效的算法来比 O kn 2 更快地解决这个问题 这是简单解决方案的
  • 使用java将当前GMT时间转换为CST时区

    我正在尝试使用 JDK8 将当前 GMT 时间转换为 CST 时间 但我的代码总是为两个时区返回相同的时间 我还验证了 getAvailableIDs 具有 CST Calendar cal Calendar getInstance Tim
  • ASP.NET WebForms:短路验证

    我有一个正在验证的网格文本框
  • Django AJAX JSON 响应在浏览器中显示为原始文本

    我正在 Pinax 框架内使用 Django 1 4 2 开发一个 Stripe Web 应用程序 django stripe 付款 艾尔达瑞安 阿贾克斯 我已经一切正常 除了 ajax 响应 JSON 格式 似乎没有被任何 ajax 回调