This is what I get without your code: index1.html:1 XMLHttpRequest cannot load http://192.168.1.122:81/servos.rpy?value=70P. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.1.122:9000' is therefore not allowed access. jquery.min.js:4 XHR failed loading: GET " http://192.168.1.122:81/servos.rpy?value=70P".
This is what I get with it: jquery.min.js:4 GET http://192.168.1.122:81/servos.rpy?value=100P send @ jquery.min.js:4 ajax @ jquery.min.js:4 r.(anonymous function) @ jquery.min.js:4 move @ index1.html:54 onclick @ index1.html:17 index1.html:1 XMLHttpRequest cannot load http://192.168.1.122:81/servos.rpy?value=100P. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.1.122:9000' is therefore not allowed access. *The response had HTTP status code 500.* jquery.min.js:4 XHR failed loading: GET " http://192.168.1.122:81/servos.rpy?value=100P". I appreciate your efforts and if you have any other ideas... Thank You! Deve On Sun, Aug 27, 2017 at 12:48 PM, Deve Krehbiel <d...@speedprint.com> wrote: > Thank you for the response. In trying that code, it made it so the LAN > cannot move the buttons either. Here is the error list I got: > > *web.Server Traceback (most recent call last):* > exceptions.NameError: global name 'origin' is not defined > /usr/lib/python2.7/dist-packages/twisted/web/server.py:189 in process > 188 self._encoder = encoder > 189 self.render(resrc) > 190 except: > /usr/lib/python2.7/dist-packages/twisted/web/server.py:238 in render > 237 try: > 238 body = resrc.render(self) > 239 except UnsupportedMethod as e: > /usr/lib/python2.7/dist-packages/twisted/web/resource.py:250 in render > 249 raise UnsupportedMethod(allowedMethods) > 250 return m(request) > 251 > /usr/local/www/servos.rpy:15 in render_GET > 14 def render_GET(self,request): > 15 if origin in (self.permitted_origins): > 16 request.setHeader('Access-Control-Allow-Origin', origin) > exceptions.NameError: global name 'origin' is not defined > > Deve > > On Sun, Aug 27, 2017 at 12:03 PM, Donal McMullan <donal.mcmul...@gmail.com > > wrote: > >> Perhaps you just need to set the 'Access-Control-Allow-Origin' header? >> Something like this might work: >> >> >> # Import necessary files >> >> import serial >> >> from twisted.web.resource import Resource >> >> # Setup Arduino at correct speed >> >> try: >> >> arduino = serial.Serial('/dev/ttyACM0', 9600) >> >> except: >> >> arduino = serial.Serial('/dev/ttyACM1', 9600) >> >> >> >> class MoveServo(Resource): >> >> isLeaf = True >> >> permitted_origins = ('http://192.168.1.122:9000',) >> >> >> >> def render_GET(self,request): >> >> if origin in (self.permitted_origins): >> >> request.setHeader('Access-Control-Allow-Origin', origin) >> >> try: >> >> # Send value over serial to the Arduino >> >> arduino.write(request.args['value'][0]) >> >> return 'Success' >> >> except: >> >> return 'Failure' >> >> >> >> resource = MoveServo() >> >> On 27 August 2017 at 17:10, Deve Krehbiel <d...@speedprint.com> wrote: >> >>> First post so forgive me if I am not explaining this right. >>> >>> I am trying to make a baby cam and then heavily document it for everyone >>> to have access to. I am using a Raspberry Pi with Rasbian. I am using >>> mjpg-streamer for the streaming with no problems. >>> >>> The problem is I am also using two servos for pan and tilt. To >>> accomplish this I am using an Arduino Uno. This is so I can add IR lighting >>> for night vision, etc later. I am not a programmer so this is getting >>> frustrating after a few weeks of failure. >>> >>> How is it failing you might ask..well, its working perfectly with only >>> ONE exception: >>> Every time I push the button for left/right/up/down I get this: >>> >>> XMLHttpRequest cannot load http://192.168.1.122:81/servos.rpy?value=100P. >>> No 'Access-Control-Allow-Origin' header is present on the requested >>> resource. Origin 'http://192.168.1.122:9000' is therefore not allowed >>> access. >>> >>> On the local area network, it still works, but taking it to the internet >>> it does not. >>> >>> Here are the two programs that make this happen. One is servos.rpy and >>> the other is the supporting HTML/Get script; >>> **** >>> servos.rpy >>> ----------------------------------- >>> # Import necessary files >>> import serial >>> from twisted.web.resource import Resource >>> # Setup Arduino at correct speed >>> try: >>> arduino = serial.Serial('/dev/ttyACM0', 9600) >>> except: >>> arduino = serial.Serial('/dev/ttyACM1', 9600) >>> >>> class MoveServo(Resource): >>> isLeaf = True >>> def render_GET(self,request): >>> try: >>> # Send value over serial to the Arduino >>> arduino.write(request.args['value'][0]) >>> return 'Success' >>> except: >>> return 'Failure' >>> >>> resource = MoveServo() >>> *** >>> >>> Now for the HTML/Get script: >>> >>> ** >>> <!doctype html> >>> <html> >>> <head> >>> <title>Make Use Of DIY Security Camera</title> >>> <style type="text/css"> >>> #container { >>> /* center the content */ >>> margin: 0 auto; >>> text-align: center; >>> } >>> </style> >>> </head> >>> <body> >>> <div id="container"> >>> <img src="/?action=stream" /><br> >>> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jque >>> ry.min.js"></script><br /> >>> <button onclick="servos.move('P', 10)">Left</button> >>> <button onclick="servos.move('P', -10)">Right</button> >>> <button onclick="servos.move('T', -10)">Down</button> >>> <button onclick="servos.move('T', 10)">Up</button> >>> </div> >>> </body> >>> <script> >>> var servos; >>> $( document ).ready(function() { >>> servos = moveServos(); >>> }); >>> function moveServos() { >>> // Store some settings, adjust to suit >>> var panPos = 70, >>> tiltPos = 90, >>> tiltMax = 170, >>> tiltMin = 45, >>> panMax = 170, >>> panMin = 20; >>> return { >>> move:function(servo, adjustment) { >>> var value; >>> if(servo == 'P') { >>> if(!((panPos >= panMax && adjustment > 0) || (panPos <= panMin && >>> adjustment < 0))) { >>> // Still within allowed range, "schedule" the movement >>> panPos += adjustment; >>> } >>> value = panPos + 'P'; >>> } >>> else if(servo == 'T') { >>> if(!((tiltPos >= tiltMax && adjustment > 0) || (tiltPos <= tiltMin && >>> adjustment < 0))) { >>> // Still within allowed range, "schedule" the movement >>> tiltPos += adjustment; >>> } >>> value = tiltPos + 'T'; >>> } >>> // Use AJAX to actually move the servo >>> $.get('http://192.168.1.122:81/servos.rpy?value=' + value); >>> }, >>> } >>> } >>> </script> >>> </html> >>> >>> ***** >>> Twisted is started: sudo twistd -n web -p 81 --path /usr/local/www/ >>> >>> I would be forever grateful if someone could take a serious look at this >>> and tell me where I am going wrong. Once this is fixed, I can start >>> documenting the entire system for everyone. Thank you! >>> >>> Deve >>> >>> _______________________________________________ >>> Twisted-web mailing list >>> Twisted-web@twistedmatrix.com >>> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web >>> >>> >> >> _______________________________________________ >> Twisted-web mailing list >> Twisted-web@twistedmatrix.com >> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web >> >> >
_______________________________________________ Twisted-web mailing list Twisted-web@twistedmatrix.com https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web