2016-03-19 23 views
0

Express, React, Ajax, Plivo kullanıyorum.Ekspres + Plivo: Ajax POST isteği başarısız oluyor ama yine de telefonuma iki kez aynı sms aldım

Verileri (kullanıcı telefon numarası ve metin mesajı) istemciden ekspres sunucuma gönderen bir ajax POST isteğim var. Gönderiyi gönderdiğimde telefonuma metin mesajı aldığımda chrome dev araçlarını kontrol ettiğimde istek durumunun beklemede olduğunu (sunucuda 202 durumu olarak kaydeder) bir süre sonra istek durumu Chrome dev araçları üzerinde failed. Ben POST isteğinde bulunurken hemen sonra sms olsun ama iki kez gönderilen eğer istek 4 dakika boyunca beklemede kalır fark

Status: 202 
    API Response: 
    { api_id: 'api-id-string', 
     message: 'message(s) queued', 
     message_uuid: [ 'random message_uuid string' ] } 
    POST/- - ms - - 

    Status: 202 
    API Response: 
    { api_id: 'api-id-string', 
     message: 'message(s) queued', 
     message_uuid: [ 'random message_uuid string' ] } 
    POST/- - ms - - 

:

Bu benim sunucu günlüklerinde elde ediyoruz. Demek istediğim, eğer istek 2 dakika geçerse, metin mesajını tekrar alırım ve istek 3.9 dakika içinde başarısız olur. Sms bir kez olsun, istek 2 dakika başarısız olur. Yani her 2 dakikada bir POST/- - ms - - elde ettiğimi tahmin ediyorum, yani sunucu isteği tamamlamak için çalışmayı durdurduğunda, bunu tamamlamak için yeniden denemeyi ve yeniden sms göndermeyi deniyor. enter image description here

Yukarıdaki resimde iki POST isteği, iki farklı kısa mesaj gönderdim. İlk olarak, başarısız olmak için yaklaşık 4 dakika sürdü, bunun için aynı sms iki kez aldım. İkincisi başarısız olmak için 2 dakika sürdü, bir kez bunun için sms aldım.

Diğer cevaplara bakıyordum ve birçok kişi için istek iki kez favicon nedeniyle gönderiliyormuş gibi görünüyor, fakat benim durumumda, url isteğini günlüğe kaydetme konsolunda ve url her ikisi için de aynı. Ayrıca başka bir istekte bulunmamakla birlikte, bu soruyu yinelenen bir şey olmaması için talebi yeniden denemek gibi görünüyor. yani benim ayıklama beceri iyi olsa da olmasa çok deneyimli değilim

$.post('/', { 
    number: this.state.number, 
    message: this.state.message 
}); 

: ajax POST isteği

app.post('/', function(req, res) { 
    console.log(req.url); 
    p.send_message({ 
     src: plivoNumber, 
     dst: '1'+req.body.number, 
     text: req.body.message, 
    }, function(status, response) { 
     console.log('Status:', status); 
     console.log('API Response:\n', response); 
    }); 
}); 

Bu edilir:

Bu

benim sunucuda var koddur belki de yeni bir hata yaptım.

cevap

2

İstemci isteklerine yanıt vermiyorsunuz, böylece bağlantılar/istekler zaman aşımına uğruyor. İstemciye (200 OK HTTP durum kodu dışında) geri gönderilecek hiçbir şeyiniz yoksa, en az res.end() numaranızı p.send_message() geri çağırınız.

+0

Çok basit bir şeydi! Haha çok teşekkür ederim! Bu çalıştı :) – corasan

İlgili konular