【问题标题】:This jquery function doesn't complete but also doesn't throw any errors这个 jquery 函数没有完成,但也没有抛出任何错误
【发布时间】:2011-11-15 05:17:05
【问题描述】:

我正在尝试通过一直放置一些警报来找出此功能不起作用的原因。

我收到第一个“嗯”警报,但之后什么都没有。

如果我查看 firebug,我可以看到我实际上得到了我想要的返回的 json 数据,所以显然 ajax 请求是成功的....但是为什么成功返回的内部什么都没有做呢?

alert('hmm'); // <- i work

$.ajax({
type: 'POST',
url: '/process_registration.php',
data: {event: event_id, time: time_id, ticket: ticket_id, tix: number_tickets, sta: cc_state, type: cc_type, e: reg[0], m: reg[1], f:reg[2], l:reg[3], cc:reg[4], cvn:reg[5], mo:reg[6], yr:reg[7], st:reg[8], city:reg[9], p:reg[10], tot:total },
cache: false,
dataType: 'json',
success: function(data) {

alert('hi1'); // <- why don't I get inside here and work?

        if(data['success']=='1'){
        window.location.href = '/registration_complete';
        }

    if(data['unknown']=='1' ||  data['error']=='1') {

        alert('hi your submission failed');

    }

 }

});

如果发生这种事情,我习惯于看到一些错误,但我没有从浏览器返回任何东西来调试它。我敢肯定,这很简单,并且会为我的愚蠢揭示一个新的维度。

请帮忙:)

这是一个提交数据的示例,萤火虫说正在发布在 ajax 帖子中:

cc  3242324232423242
city    oasuht
cvn 122
e   tohaeus@email.com
event   22
f   soatehu
l   sntahou
m   23423424
mo  12
p   234234
st  aoesntuh asotenhu
sta State
ticket  37 
time    120
tix 4
tot 4.00
yr  12

所以看来所有数据都在传递,对我来说应该不是问题。

【问题讨论】:

  • 删除data 参数并告诉我们你看到了什么。如果它没有改变,那么请转到它应该调用的 URL,然后告诉我们会发生什么(例如,是否有某种重定向?)。
  • 恐怕没有任何改变 - 我仍然得到 json 数据的返回,在这种情况下 -> "{"error":"1"}{"error_msg":" Invalid Expiry Date .您的信用卡尚未为此交易收取费用。"}" 因为我们没有发送信用卡到期日期的任何数据。
  • 添加error: function(xhr,status,error) {...}回调,看看是否因为错误而被调用。
  • 我认为你的脚本没有返回有效的 json 数据......
  • 这只是一个猜测,对你来说很好:)

标签: jquery


【解决方案1】:

您使用success回调,如果请求不成功将不会被调用。

看看other callbacks

  • complete
  • error
  • statusCode

【讨论】:

  • 谢谢你,我会检查出来的。但是如果我得到返回的json数据是不是成功了? “成功”不只是意味着它找到了文件并加载了吗?我返回的 json 数据来自对 ajax 加载文件的处理...
  • @apaidnerd:谢谢。不知道为什么我没有将它包含在我的详尽列表中。
  • 我认为这意味着您的 JSON 无效。尝试通过验证器运行它,看看它在哪里打嗝。
【解决方案2】:

您是否使用 firebug 检查过您遇到的确切错误?您还可以在 ajax 调用中添加错误函数。如果被击中,则您的数据有问题:)

您可以使用 json2.js 和 JSON.stringify 来发布您的数据。 This 可能有用

【讨论】:

  • 也尝试放置一个错误函数,如果它被击中,请告诉我。拥有一个总是好的
  • 没有火箭科学。插入 a , 成功后添加 error: function(jqXHR, textStatus, errorThrown) {}
  • 那么这应该可以解决您的问题:stackoverflow.com/questions/631418/…
  • "xhr: [object XMLHttpRequest] status: parsererror error: SyntaxError: Unexpected token {"
  • 添加断点并检查您的数据是否存在无效令牌。查看我的编辑以获取您问题的可能答案
【解决方案3】:

写退出;就在你之后 json_encode($data);在你的 php 文件中,然后试一试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    相关资源
    最近更新 更多