5

मैं एंगुलरजेएस में एक आवेदन करने की कोशिश कर रहा हूं जो कुछ आंकड़ों का ट्रैक रखता है और उपयोगकर्ताओं को आगे की प्रक्रिया के लिए उन्हें Google Apps स्क्रिप्ट में सबमिट करने की अनुमति देता है। सब कुछ कंप्यूटर पर पूरी तरह से काम करता है। मैं क्रोम में और फ़ायरफ़ॉक्स में यह परीक्षण किया है, लेकिन जब मैं iPad पर सबमिट करने का प्रयास यह निम्न त्रुटियों पता चलता है:405 विधि अनुमत नहीं - आईओएस सफारी को छोड़कर सब कुछ पर काम करता है

संसाधन लोड करने में असफल: सर्वर 405 की स्थिति के साथ प्रतिक्रिया व्यक्त (पद्धति की अनुमति नहीं)

संसाधन लोड करने में विफल: शून्य से कोई अनुरोध नहीं कर सकता।

XMLHttpRequest https://script.googleusercontent.com/macros/echo?user_content_key=UQXGbRq6...HLV301R लोड नहीं कर सकता है। शून्य से कोई अनुरोध नहीं कर सकता।

var URL = 'https://script.google.com/macros/s/.../exec'; 

$http.post(URL, 
    $.param({ packet: JSON.stringify($scope.data) }), { 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' 
     } 
    } 
).success(function(data, status) { 
    alert(data.packet); 
    $scope.rollover(); 
}).error(function(data, status) { 
    console.log(data); 
    console.log(status); 
    $scope.show_status(data); 
}); 

यह कंसोल में दो पंक्तियों को प्रिंट करता है। डेटा लाइन खाली है और लौटाई गई स्थिति 404 है।

कृपया मदद करें!

+0

मैंने नीचे एक अपडेट पोस्ट किया है –

उत्तर

1

कृपया देखें https://code.google.com/p/google-apps-script-issues/issues/detail?can=2&start=0&num=100&q=&colspec=Stars%20Opened%20ID%20Type%20Status%20Summary%20Component%20Owner&groupby=&sort=&id=3226

यह समस्या अभी भी अभी तक कोई वर्तमान को ठीक करने की निर्धारित तिथि के साथ हल किया जाना है।

मेरा मानना ​​है कि मूल कारण Google Apps स्क्रिप्ट के कारण सफारी द्वारा अन्य डोमेन के लिए 'प्रीफलाइटिंग' गैर-मानक अनुरोधों के लिए उपयोग की जाने वाली विकल्प विधि को संभालने में सक्षम नहीं है।

मेरे द्वारा उपयोग किए जाने वाले काम को मेरे सर्वर से अनुरोध करने के लिए Google Apps स्क्रिप्ट के साथ बातचीत करना है। सुंदर और धीमी नहीं है, लेकिन मुझे यह सुनिश्चित करने की ज़रूरत है कि साइट काम कर रही है।

यहां PHP कोड है जिसका उपयोग मैं अपने सर्वर पर अनुरोध करने के लिए करता था, मैक्रो, आईडी और शीट में पैराम प्राप्त करने के रूप में गुजरता था। php तो गूगल से लिया गया डेटा रिटर्न:

<?php 

header('Access-Control-Allow-Origin: *'); 
$url = 'https://script.google.com/macros/s/'; 
$url .= $_GET['macro']; 
$url .= '/exec?id='; 
$url .= $_GET['id']; 
$url .= '&sheet='; 
$url .= $_GET['sheet']; 

function get_data2($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 


$response = get_data2($url); 

echo $response; 

?> 

यह अब इसका मतलब है कि सफारी में एक ही डोमेन के लिए एक अनुरोध कर रहा है और यह भी हम पालन कर रहे हैं 403 रीडायरेक्ट टिप्पणी गूगल कृपया CURLOPT_FOLLOWLOCATION साथ हमारे रास्ते में डालता है।

अद्यतन 7 वीं मई 2015

मैंने देखा है कि हालांकि मैं सर्वर से एक 405 method not allowed प्रतिक्रिया प्राप्त कर रहा हूँ, डेटा वास्तव में सफलतापूर्वक Google एप्लिकेशन स्क्रिप्ट के द्वारा प्राप्त किया जा रहा है। उदाहरण के लिए मैं बिना किसी समस्या के प्राप्त और पोस्ट पैरामीटर प्राप्त करने में सक्षम हूं।

इसके लिए समायोजित करने के लिए मैंने AJAX कॉल से त्रुटि पकड़ में एक स्विच में जोड़ा है क्योंकि मुझे वास्तव में प्राप्त त्रुटि कोड 0 है ... यह देखने में खुशी है कि कुछ काम कर रहा है लेकिन मुझे विश्वास नहीं होगा यह उत्पादन में बहुत अधिक है।

संबंधित मुद्दे